Text 转换为 Access MDB 中
Text 文件类型在很多软件中都为一般应用程序与数据库之间架起一座桥梁。你可以使用 Text ISAM 驱动程序和 SQL 来把 Text 文件转换成 Access MDB 数据库文件,首先,为文本文件创建一个 SCHEMA.INI 文件。然后,你可以使用下面的代码来实现转换:
Dim db As Database, tbl as TableDef
Set db = DBEngine.CreateDatabase(App.Path & "\mymdb.mdb", dbLangGeneral, dbVersion_0)
Set tbl = db.CreateTableDef("Temp")
tbl.Connect = "Text;database=c:\vbpj\data"
tbl.SourceTableName = "Customer#txt"
db.TableDefs.Append tbl
db.Execute "Select Temp.* into NewTable from Temp"
db.TableDefs.Delete tbl.Name
db.Close
Set tbl = Nothing
Set db = Nothing

处理过程时的鼠标显示 难
为让你的程序更加专业一点,我们往往需要在程序处理过程时的鼠标形状显示为“沙漏”状态。我们一般的方法是在子程序的开始及结尾编程来改变鼠标形状,这样十分烦琐且容易忘记。我们还可以以下面的方法来实现这一目标:
1、创建一个新类,命名为:CHourGlass;
2、在此类中加入以下代码:
Private Sub Class_Initialize()
Screen.MousePointer = vbHourglass
End Sub
Private Sub Class_Terminate()
Screen.MousePointer = vbDefault
End Sub
3、在子程序的开始加入下面代码:
Dim MyHourGlass As CHourGlass
Set MyHourGlass = New CHourGlass

让程序启动快一点 易
是否觉得你的应用程序启动得太慢了?你可以用下面小技巧让你的程序启动起来感觉快一点:
在你的启动窗口的 Form_Load 事件的第一行加入下面一行代码:Me.Show
园主点评:VB 在窗口显示前一般先执行 Form_Load 事件中的程序,如果你在 Form_Load 中加入大量代码,就可以导致 VB 执行代码很久而不显示窗口,我们在 Form_Load 事件的第一行强制加入 Me.Show 让窗口先显现出来。这样给人感觉程序运行好象就快了点。

创建无 Icon 的窗口 易

我们在很多时候都需要那种无 Icon 的 窗口,如“关于……”“查找”等。在 VB 中,我们可以按以下步骤来创建此类窗口:
1、设置窗口的 BorderStyle = 3;
2、在 Form_Load 中加入:Me.Icon = LoadPicture("")

创建不规则窗口 中

Win32 API 有很多让你意想不到的功能。要创建特殊的不规则窗口看上去似乎很难。但我们如果我们说我们用几行代码就可以实现,这似乎不可思议。但事实就是如此!请试试:

Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

Private Sub Form_Load()
Show 'The form!
SetWindowRgn hWnd,   CreateEllipticRgn(0, 0, 300, 200),   True
End Sub

上述代码可以创建一个椭圆形状的窗口。怎么样??


向文件中写入非 ASCII 字符 中

如何向一个文件中写入非ASCII字符(ASCII码在128-255之间)?这在 VB3 中按常规方法就可以很好处理。但是,自 VB4 起,微软引入 Unicode 后,此问题就显得有些麻烦。方法如下:

Dim a As Byte     '如果你不用 Unicode,微软推荐使用 Byte 类型替换 String 类型
a=&HF5             '此处直接给处 ASCII 码即可
Open "test.dat" For Binary As #1
Put #1, , a
Close (1)


显示程序的版本 易

如果你想在程序的“关于……”中显示程序的版本(以标准方式显示:即 x.xx.xxxx),你可以使用以下子程序:
Public Function GetMyVersion() As String
Static strMyVer As String
If strMyVer = "" Then
strMyVer = Trim$(Str$(App.Major)) & "." & Format$(App.Minor, "##00") & "." Format$(App.Revision, "000")
End If
GetMyVersion = strMyVer
End Function

监视程序的运行情况 难
 
我们使用 VB 提供的 Shell 方法调用外部程序时,Shell 方法执行后会继续执行下面的代码,而我们不能确定外部程序什么时候调用结束。我们现在可以通过以下方法来实现对被调用程序的监视:
(1)首先在工程中添加一个模块,然后声明 OpenProcess 及 CloseHandle 这两个 API 函数;
(2)然后加入下面的函数:
Public Function StillRun(ByVal ProgramID) As Boolean
Dim lHProgram As Long
Dim lReturn As Long
hProgram = OpenProcess(0, False, ProgramID)
If Not hProgram = 0 Then
    StillRun = True
Else
    StillRun = False
End If
CloseHandle hProgram
End Function
说明:ProgramID 是 Shell 函数返回的那个值, 那是一个进程号;lHProgram 是被测程序的进程句柄;lReturn是进程的返回码。本程序只是在WIN32下有效,使用重要注意一个问题, 就是代码的重入问题。可以用类似以下的代码来解决。
While StillRun(id)
    DoEvents
Wend

系统菜单上的图标 易

在 Windows 95 的系统工具栏(“开始”按钮的工具栏)上加上自己的图标似乎是一件很时髦的事。在 VB5 中,我们可以用比较简单的方法地实现这一技术:VB5 的企业版及专业版的 CD-ROM 上其实提供了许多有关 VB 的一些很有用的东西。我们现在讨论的问题的解决方法也在此列。打开你的 CD-ROM,在 \TOOLS\UNSUPPRT\SYSTRAY 这个目录里就提供了一个 ActiveX 控件的源代码。此控件的目的就是在系统菜单上加上自己的图标。你可以把它编译成一个 OCX 供调用或直接在程序里面包含此模块。

输入限制确认 易
在某些应用程序中,我们需要限制在文本框或其它一些控件中只能输入数字或一些特定的字符,现在我们可以通过下面的一个函数来实现此功能:
Function ValiText(KeyIn As Integer, ValidateString As String, Editable As Boolean) As Integer
    Dim ValidateList As String
    Dim KeyOut As Integer
    If Editable = True Then
         ValidateList = UCase(ValidateString) & Chr(8)
    Else
         ValidateList = UCase(ValidateString)
    End If
    If InStr(1, ValidateList, UCase(Chr(KeyIn)), 1) > 0 Then
        KeyOut = KeyIn
    Else
        KeyOut = 0
        Beep
    End If
    ValiText = KeyOut
End Function
在工程中加入此函数后,你就可以使用它了。方法:在需要限制输入的控件的 KeyPress 加入以下代码:
KeyAscii=ValiText(Keyascii, "0123456789/-",True)
现在你就可以过虑掉你不希望的字符了。在此例中,我们只接受第二个参数提供的字符,即:"0123456789/-"
而此函数的第三个函数就决定了能否使用 [Backspace] 键。最后值得一提的是此函数对大小写是不敏感的。