当必须将包含两个点的表单中的文本字段中的数据插入 table 时,字符被截断
A character is cut off when data from a textfield in a form containing two dots has to be inserted into a table
当我想使用以下代码将表单中的数据插入 MS Access 2010 中的 table 时,我收到运行时错误“3075”。
它说:即使文本字段 "AbsErst" 包含“123.11.11”,查询表达式“123.11.1”中的语法错误。当我在 "AbsErst" 中输入不带点或只有一个点的内容时,代码运行完美并将数据插入 table。
我用相同的错误代码寻找其他问题,但没有找到相同的问题。
期待您的答案或想法
亨里克
Private Sub cmdStore_Click()
CurrentDb.Execute "INSERT INTO tblAbschnitt(INST_F,GDE_F,ABT_F,RW_F,Erst,Stand) " & " VALUES(" & _
Me.cboInst & "," & Me.cboGem & "," & Me.cboAbt & "," & Me.cboRW & "," & Me.AbsErst & "," & Me.absStan & ")"
End Sub
如果要将文本插入 table(和 '123.11.1' 是 文本),则必须在SQL 声明。
CurrentDb.Execute "INSERT INTO tblAbschnitt" & _
"(INST_F,GDE_F,ABT_F,RW_F,Erst,Stand) " & _
" VALUES(" & Me.cboInst & _
"," & Me.cboGem & _
"," & Me.cboAbt & _
"," & Me.cboRW & _
",'" & Me.AbsErst & "'" & _
"," & Me.absStan & _
")"
不仅对Me.AbsErst
而且对所有文本列都这样做。您必须确保对于所有这些列,要插入的值本身不包含任何单引号。他们需要用另一个单引号转义。 (提示:SQL 注入)
如果您不使用 INSERT
语句而是像这样:
,那么所有这一切可能会更容易和更安全地完成
With CurrentDb.OpenRecordset("tblAbschnitt")
.AddNew
.Fields("INST_F") = Me.cboInst
.Fields("GDE_F") = Me.cboGem
.Fields("ABT_F") = Me.cboAbt
.Fields("RW_F") = Me.cboRW
.Fields("Erst") = Me.AbsErst
.Fields("Stand") = Me.absStan
.Update
End With
这样所有的转义和单引号都会自动处理。
当我想使用以下代码将表单中的数据插入 MS Access 2010 中的 table 时,我收到运行时错误“3075”。 它说:即使文本字段 "AbsErst" 包含“123.11.11”,查询表达式“123.11.1”中的语法错误。当我在 "AbsErst" 中输入不带点或只有一个点的内容时,代码运行完美并将数据插入 table。 我用相同的错误代码寻找其他问题,但没有找到相同的问题。 期待您的答案或想法 亨里克
Private Sub cmdStore_Click()
CurrentDb.Execute "INSERT INTO tblAbschnitt(INST_F,GDE_F,ABT_F,RW_F,Erst,Stand) " & " VALUES(" & _
Me.cboInst & "," & Me.cboGem & "," & Me.cboAbt & "," & Me.cboRW & "," & Me.AbsErst & "," & Me.absStan & ")"
End Sub
如果要将文本插入 table(和 '123.11.1' 是 文本),则必须在SQL 声明。
CurrentDb.Execute "INSERT INTO tblAbschnitt" & _
"(INST_F,GDE_F,ABT_F,RW_F,Erst,Stand) " & _
" VALUES(" & Me.cboInst & _
"," & Me.cboGem & _
"," & Me.cboAbt & _
"," & Me.cboRW & _
",'" & Me.AbsErst & "'" & _
"," & Me.absStan & _
")"
不仅对Me.AbsErst
而且对所有文本列都这样做。您必须确保对于所有这些列,要插入的值本身不包含任何单引号。他们需要用另一个单引号转义。 (提示:SQL 注入)
如果您不使用 INSERT
语句而是像这样:
With CurrentDb.OpenRecordset("tblAbschnitt")
.AddNew
.Fields("INST_F") = Me.cboInst
.Fields("GDE_F") = Me.cboGem
.Fields("ABT_F") = Me.cboAbt
.Fields("RW_F") = Me.cboRW
.Fields("Erst") = Me.AbsErst
.Fields("Stand") = Me.absStan
.Update
End With
这样所有的转义和单引号都会自动处理。