1

如何将记事本文件导入 VB 6.0,然后将文件内容保存到数据库(Microsoft Access 数据库)中?

4

4 回答 4

1

基本步骤(适用于任何语言/数据库):

  1. 读取文件

  2. 使用连接字符串连接到数据库

  3. 插入表格

有关特定信息和代码,请参阅使用 Visual Basic 6 连接 Access 2003 。

于 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 回答