値をコンボボックスから文字列に変換して、その文字列を変数に追加して最終的にデータベースに追加する関数に追加する必要があります。値をAccessコンボボックスから文字列に変換する
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
が必要です。
私は特にあなたに答えるわけではありませんが、私はいくつかの考えを持っています:1)あなたはcombobox_afterupdateをcombobox_changeよりも使う方が良いでしょう。 2)ステートメントcbRowStudentGrade = cbRowStudentGrade.Column(0)は意味をなさない。バインドされた列が0の場合、このステートメントはすべて現在の値を自身に割り当てます。 3)公開関数には引数がないため、関数がフォームに定義されていることを意味しますが、フォームの公開関数は、フォームが開いていなければクエリで認識されません。 –
投稿にもクエリを追加することもできます。 –
サブ関数が変数に値を設定する前に関数が実行されているようです。 –