VB 将txt导入到Access数据库
比如我的txt文本的格式是这样子的
王小虎 80 60 70 30 77 33 90
王小冰 30 100 50 70 62 80 73
李小明 77 88 99 66 88 68 79
界面上有一个按钮 点击可以浏览txt文件导入至数据库中 并显示出来
数据库中有一个表 名为cj
表中字段有 name yw sx ls sw hx yy zz zf pjf (11个字段)
点击导入按钮选中上面的txt文件之后
要写入数据库 cj表中对应的字段并显示出来 如:
姓名 语文 数学 历史 生物 化学 英语 政治 总分 平均分
王小虎 80 60 70 30 77 33 90 440 62.85
王小冰 30 100 50 70 62 80 73 465 66.42
李小明 77 88 99 66 88 68 79 565 80.71
该如何做出来呢
[解决办法]
因为使用split,所以间隔的空格必须只能严格规定为一个空格,如果是多个,就要考虑其他方法。
写个大致代码:(工程要引用microsoft scripting runtime和ado对象,用createobject也可以)
Dim conn As ADODB.ConnectionDim bTrans As BooleanDim fso As New FileSystemObjectDim ts As TextStreamDim s As StringDim sArr1() As String, sArr2() As StringDim i As Long, j As LongDim sql As StringOn Error GoTo processErrorSet conn = New ADODB.Connectionconn.ConnectionString = "..." '连接字符串conn.CommandTimeout = 10conn.OpenSet ts = fso.OpenTextFile("文本文件全路径名")s = ts.ReadAll()sArr1 = Split(s, vbCrLf)conn.BeginTransbTrans = TrueFor i = LBound(sArr1) To UBound(sArr1) sArr2 = Split(sArr1(i), " ") sql = "insert into table1 values('" For j = LBound(sArr2) To UBound(sArr2) If 0 = j Then sql = sql & sArr2(j) & "'," Else sql = sql & sArr2(j) & "," End If Next j sql = Left(sql, Len(sql) - 1) & ")" '此处执行的正确与否取决于文本文件内容的严格性; '如果不很严格,前面代码要改动并采取措施 conn.Execute sqlNext iconn.CommitTransconn.CloseSet conn = NothingExit SubprocessError:If bTrans Then conn.RollbackTransIf Not (conn Is Nothing) Then If conn.State <> adStateClosed Then conn.CloseSet conn = NothingMsgBox Err.Description