我需要将组合框中的值转换为字符串,这样我就可以将该字符串添加到变量中,添加到最终添加到数据库的函数中。 这是我的sub,它从我的表单和组合框中抓取文本:
Private Sub cbRowStudentGrade_Change()
Course_ID.SetFocus
rowCourseID = Course_ID.Text
StuRed_ID.SetFocus
rowStudentRedID = StuRed_ID.Text
cbRowStudentGrade.SetFocus
cbRowStudentGrade = cbRowStudentGrade.Column(0)
CurrentDb.Execute "qryInputGrades"
MsgBox (rowCourseID)
MsgBox (rowStudentRedID)
MsgBox (cbRowStudentGrade)
Requery
Repaint
End Sub
以下是我在Access查询构建器中用作条件的函数。
Public Function funcRowCourseID() As String
funcRowCourseID = rowCourseID
End Function
Public Function funcRowStudentRedID() As String
funcRowStudentRedID = rowStudentRedID
End Function
Public Function funcCbRowStudentGrade() As String
funcCbRowStudentGrade = cbRowStudentGrade
End Function
我的查询:
INSERT INTO tblRegistrationGrade ( Red_ID, Course_ID, Grade )
VALUES (funcRowStudentRedID(), funcRowCourseID(), funcCbRowStudentGrade());
我认为数据库与组合框实际值之间的数据类型不匹配。但是,如果存在数据类型不匹配,那么会出现错误吗?我的数据库需要short text
,这些都是。
答案 0 :(得分:0)
你这样做太复杂了。
您可以直接从INSERT查询引用表单控件:
INSERT INTO tblRegistrationGrade ( Red_ID, Course_ID, Grade )
VALUES (Forms!myForm!StuRed_ID, Forms!myForm!Course_ID, Forms!myForm!cbRowStudentGrade);
除了调用查询之外,除掉几乎所有的代码。
正如约翰所写,最好放在cbRowStudentGrade_AfterUpdate()
。
或者,使用带有DAO.Recordset
的{{1}}代替INSERT查询,请参阅:
How to: Add a Record to a DAO Recordset
在那里,您还可以直接使用from控件中的值,而无需担心数据类型。