- 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]
键。最后值得一提的是此函数对大小写是不敏感的。
-