vb与ACCESS数据库
本帖最后由 bcrun 于 2013-11-30 12:00:47 编辑 http://my.csdn.net/my/album/detail/1658630#1658630
ACCESS数据库中建立的表
http://my.csdn.net/my/album/detail/1658630#1658632
txt文本中的数据格式,红色标记部分是想要导入到数据库表中的内容。
Private Sub InputDelay_Click()access 数据库 vb
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=VisssimData.mdb"
cnn.ConnectionTimeout = 30
cnn.Open
Dim sSql As String
Dim fileRoute, vlrFilePath As String
Dim id, TIME, NO, Car, CarType, Delay As String
Dim x As Integer
fileRoute = Form2仿真文件选择.SimFileRoute.Text
If fileRoute = "" Then
Beep
MsgBox "请指定仿真文件路径", vbExclamation + vbOKOnly, "提示"
Exit Sub
End If
x = InStr(fileRoute, ".")
vlrFilePath = Left$(fileRoute, x - 1) + ".vlr"
Open vlrFilePath For Input As #1
Do While Not EOF(1)
Input #1, TIME, NO, Car, CarType, Delay
sSql = "insert into CompileDelay(ID,TIME, NO, Car, CarType, Delay) values (ID,TIME , TrimNO ,Car,CarType ,Delay)"
cnn.Execute (sSql)
Loop
Close #1
MsgBox "完成"
Set cnn = Nothing
End Sub
[解决办法]
sSql = "insert into CompileDelay(ID,TIME, NO, Car, CarType, Delay) values (ID,TIME , TrimNO ,Car,CarType ,Delay)"
时间类型值格式必须是 #日期时间值#
字串类型 '字串值'
[解决办法]
另外,你这个sql将变量名当作变量值处理了,必须进行值提取,并转换为文本
[解决办法]
1,ssql=" insert into 表名(字符型字段,数值型字段,日期型字段) values('"& 字符型变量 &"',"& 数值型变量 &",#"& 日期型变量 &"#)"
2,time是系统关键字,建议不要用为表名与字段名使用,一定要用则需要用括号:
insert into CompileDelay(ID,[TIME], NO, Car, CarType, Delay)
[解决办法]
SQL 命令是作为字符串传递给数据库引擎的。
你所引用的变量值,必须通过转码变为字符串的一部分:
sSql = "insert into CompileDelay(ID, [TIME], NO, Car, CarType, Delay) values (" & ID & ",#" & Format(TIME, "yyyy-mm-dd HH:nn:ss") & "#,'" & TrimNO & "','" & Car & "','" & CarType "'," & Delay & ")"
其中,数字不加引号,字符加单引号,日期加井号。因为不知道你的数据表域类型,猜测地给出一个例子。自己调整一下。