は、だから、私は、特定の奇妙な問題を持っている学校の休日困難
のためのサインアップFRMにあなたを導き、私のVBAのログインFRMに接続されているアクセスもデータベースを持っています私のVBAコード、それは私のSQLの部分と、私は何dpを続けることはできません。 VBAはSQLから得られる結果が正しいか否かを判断しません。
私はいくつかのSQL文に文字列を入れました。
私のプログラムにログインしている学生のloginIDは、特定のクラスにあるので、コンボボックスで休暇の特定の場所しか見ることができないため、下位クラスの他の学生は、それらのいくつかは両方のクラスのために結合されています。
何とか私のSQLコードは正しくありません。
データベーステーブルBEHEERには、そのクラスがKlasと呼ばれるLoginID(コード内のleerlingnr)とパスワード(wachtwoord)があります。 1人の学生がID 12とパスワード1を持っていますLeerlingenテーブル(オランダ語の学生)ではクラス1に割り当てられましたが、将来はA5Aになりますが、コードクラッシュの安全性のために1にしました。
Public Class frmInschrijven
Dim strSql As String = ""
Dim strConnectionString As String = ""
Private Sub frmInschrijven_Load() Handles MyBase.Load
'Declareer alle variabelen
Dim strUsername2 As String = ""
Dim strKlas As String = ""
'Bepaal CommandText (=SQL statement om records op te vragen:
strSql = "SELECT B.Leerlingnr, L.Leerlingnr, Wachtwoord, L.KLas, plaats FROM BEHEER B, LEERLINGEN L, Plaatsen P"
'Definieer de verbinding:
strConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=Werkweek.accdb"
'Maak connection aan op basis van de connectionstring en
'command op basis van de SQL opdracht en gemaakte connection:
Dim objConnection As New OleDb.OleDbConnection(strConnectionString)
Dim objCommand As New OleDb.OleDbCommand(strSql, objConnection)
'Open de verbinding:
objCommand.Connection.Open()
'Maak een DataReader aan op basis van de ingestelde command:
Dim objDataReader As OleDb.OleDbDataReader = objCommand.ExecuteReader(CommandBehavior.CloseConnection)
'Doorloop de Leerlingnr's om te zien in welke klas ze zitten
'Doorloop alle records in de tabel:
While objDataReader.Read
strUsername2 = frmInloggen.strUsername
'Nog zorgen dat ALLEEN data van 1 leerling beschikbaar is, dan pas kan strKlas
strKlas = objDataReader("Select Klas FROM LEERLINGEN L, BEHEER B WHERE L.Leerlingnr=""" & frmInloggen.strUsername & """AND B.LEERLINGNR=L.LEERLINGNR")
If strKlas = "1" Then
MsgBox("Correct, you saved me!")
ElseIf strKlas Like "H4A" Then
With cboKeuze1
.Items.Add("apart")
End With
Else MsgBox("try again")
End If
End While
'Sluit de DataReader en de Connection:
objDataReader.Close()
objConnection.Close()
End Sub
BEHEERそしてLEERLINGENは、両方のBEHEERで、それはユーザー名として使用されている学生のIDを持っています。
あなたがメッセージボックスが正しい取得する場合は、コードが動作するはずです、その後私を救ったが、今、私はこの部分を通過することができないよ:
strKlas = objDataReader("Select Klas FROM LEERLINGEN L, BEHEER B WHERE L.Leerlingnr=""" & frmInloggen.strUsername & """AND B.LEERLINGNR=L.LEERLINGNR")
誰かが私を助けてください。 私が全体の.slnを含める必要がある場合は、リクエストしてください。私はそれをあなたに提供します。 ありがとうございます。
VBA?あなたはVB.NETを意味します。サイドノート:連結されたstrngをクエリとして使用しないでください。その代わりに、パラメータ化されたクエリを使用してください!参照:[パラメータ化されたクエリを実行する方法](https://msdn.microsoft.com/library/bb738521(v=vs.100).aspx) –