如何将记事本文件导入 VB 6.0,然后将文件内容保存到数据库(Microsoft Access 数据库)中?
SULEIMAN SHEHU
问问题
3655 次
4 回答
1
于 2009-06-20T13:02:06.510 回答
0
我将在这里阅读两行之间的内容,并猜测您指的是文本文件中保存的某种表格数据。
如果是这种情况,那么此处找到的 Jet(或 ODBC)连接字符串(连同 schema.ini 文件)可能就是您要查找的内容。
然后,您可以使用 ADODB 记录集从文本文件中选择数据并将其插入您的 Access 数据库。
于 2009-06-21T20:29:16.617 回答
0
好的,我最近经常这样做。所以,假设你有一个对 SCRRUN.DLL 的引用,这个第一个函数将读取文件(并且会处理 ANSI 和 Unicode):
Function ReadFileE(Filename As Variant) As String
Dim oStream As scripting.TextStream
Dim sData As String
Set oFSO = New scripting.FileSystemObject
sData = vbNullString
On Error Resume Next
Set oStream = oFSO.OpenTextFile(Filename, ForReading, False, TristateMixed)
If Err.Number = 0 Then
sData = oStream.ReadAll
oStream.Close
Else
sData = vbNullString
End If
On Error GoTo 0
ReadFileE = sData
End Function
我使用以下函数打开数据库并查询它:
Function OpenMDB(sFile As Variant) As Variant ' ADODB.Connection
Dim nErr As Long
Dim sErr As String
Dim oConnection As Object 'ADODB.Connection
Set oConnection = CreateObject("ADODB.Connection")
On Error Resume Next
oConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sFile
nErr = Err.Number
sErr = Err.Description
On Error GoTo 0
If nErr <> 0 Then
Err.Raise OPENDATABASE_E_NOTFOUND, , sErr
End If
Set OpenMDB = oConnection
End Function
Function QueryMDB(ByRef oDB As Variant, sQuery As Variant, Optional bCmdText As Boolean = False) As Variant ''ADODB.Connection ADODB.Recordset
Const adOpenForwardOnly As Long = 0
Const adOpenStatic As Long = 3
Const adOpenDynamic As Long = 2
Const adOpenKeyset As Long = 1
Const adLockOptimistic As Long = 3
Const adCmdText As Long = 1
Dim oRecordSet As Object 'ADODB.Recordset
Set oRecordSet = CreateObject("ADODB.RecordSet")
oRecordSet.Open sQuery, oDB, adOpenKeyset, adLockOptimistic
Set QueryMDB = oRecordSet
End Function
现在是一些示例代码:
Dim sText As String
sText = ReadFileE("c:\windows\system32\SQLSRDME.TXT")
Dim db As Variant
Dim rs as Variant
set db = OpenMDB("c:\users\bruce\documents\database.mdb")
set rs = QueryMDB( db, "SELECT * FROM Table1" )
rs.Find "Field1='SQLSRDME.TXT'"
If Not rs.EOF Then
rs("Field2") = sText
rs.Update
End If
rs.Close
db.Close
最后一点是从我的头顶上打出来的,所以它可能有洞。另一个代码是每天使用的 Class 文件。
此外,类文件代码在 COM 对象中公开,因此Variant
声明占优势。
HTH。
于 2009-06-30T14:15:36.840 回答
-2
您可以尝试使用 Microsoft Excel 加载记事本文件,然后尝试从那里将其导入 Microsoft Acces。
于 2009-06-20T13:04:57.173 回答