我想知道是否可以从文本文件创建Access数据库表。 例如,像这样的文本文件:
#Tom
Age:12
Info: Tall
#Alice
Age: 20
Info: Nice
应转换为包含3个参数(名称,年龄和信息)的表,其中包含Tom和Alice的信息。 另一个例子是文本文件:
Tim
-------
A tall 12 years old.
Good In basketball
Jak
-------
A short 30 years old guy.
Bad at sports
Bald
应将其转换为包含2个参数的表 - 年龄和信息。 如果需要编码,我更喜欢使用c#,尽管Java也是一种选择。
提前致谢:D
答案 0 :(得分:0)
经过广泛的搜索,我找到了解决方案。 我将文本加载到c#中的字符串中,而不是使用Microsofts API构建excel表。 在您获得excel电子表格将其转换为访问权限后,使用Access'内置功能
答案 1 :(得分:0)
在VBA中执行此操作可能更容易 - 而且您不需要编写一些混乱的c#(但是,如果您实际上是使用c#,那么任何有能力的编码器都可以轻松读取某些VBA并只输入c#行代码 - 假设你实际上是用C#编写的。
因此,导入第一个文本文件并将数据写入表格的VBA将如下所示:
Sub Import1()
Dim intfileH As Integer
Dim strBuf As String
Dim rst As DAO.Recordset
Dim strRec, vBuf, strRecDetail
intfileH = FreeFile()
Open "c:\test\text1.txt" For Input As #intfileH
strBuf = Input(LOF(intfileH), #intfileH)
Set rst = CurrentDb.OpenRecordset("tblNames")
vBuf = Split(strBuf, "#")
For Each strRec In vBuf
If strRec <> "" Then
strRecDetail = Split(strRec, vbCrLf)
With rst
.AddNew
!MyName = strRecDetail(0)
!age = Split(strRecDetail(1), ":")(1)
!Info = Split(strRecDetail(2), ":")(1)
.Update
End With
End If
Next
rst.Close
Close (intfileH)
End Sub
对于第二个数据,大致相同,这将起作用:
Sub Import2()
Dim intfileH As Integer
Dim strBuf As String
Dim rst As DAO.Recordset
Dim vBuf, strRec
Dim i As Integer
intfileH = FreeFile()
Open "c:\test\text2.txt" For Input As #intfileH
strBuf = Input(LOF(intfileH), #intfileH)
Set rst = CurrentDb.OpenRecordset("tblNames")
vBuf = Split(strBuf, vbCrLf)
For i = 0 To UBound(vBuf)
If vBuf(i) <> "" Then
With rst
.AddNew
!MyName = vBuf(i)
i = i + 2
!age = Split(vBuf(i), " ")(2)
i = i + 1
!Info = vBuf(i)
.Update
End With
End If
i = i + 1
Next
rst.Close
Close (intfileH)
End Sub