如果ID是数值类型的,'" & MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1) & "'这样表达就会类型不匹配,把单引号去掉,改为以下就OK:
rs.Open "select * from 各州信息 where ID=" & MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1) & "", conn, adOpenKeyset, adLockBatchOptimistic
VB语法出错"标准表达式中数据类型不匹配",通常是SQL结构化查询语句中匹配数据与数据表中该字段数据类型不符导致,需要匹配数据转换为合适的数据类型,或者修改SQL结构化查询语句。
在SQL中,用''或者""引起来的表示字符串,直接使用ID=5的是数字,用##引起来的是日期,所以,如果你的ID号或者其他几个字段是数字类型,那么就不要用引号引起来,直接写 ID=1 就可以了!
你看一下你的数据库中的各字段的类型和你代码中的类型是不是匹配.或者说你的代码中往数据库中写入时是不是超了长度.
建议你运行的时候逐语句运行一下.检查一下往数据库写的时候写的是什么数据.
OUT_date和OUT_USER_date这两个字段是什么类型呢?如果是日期型的,那么就要这样:
Set
adoRs
=
adoCon.Execute("insert
into
tb_JT_QC(ID,OUT_NumID,OUT_KZX,OUT_name,OUT_JE,OUT_date,OUT_BZ,OUT_USER,OUT_USER_date)
values("
&
StrNum
&
",'"
&
Text1(0).Text
&
"','"
&
Combo2.Text
&
"','"
&
Text1(1).Text
&
"','"
&
Text1(2).Text
&
"',#"
&
DTP_GX.Value
&
"#,'"
&
Text1(3).Text
&
"','"
&
Name1
&
"',#"
&
DTP_GX.Value
&
"#)")