Ich versuche, eine Abfrage einer verknüpften Tabelle durchzuführen. Nachdem ich die Ergebnisse erhalten habe, muss ich 1 von 2 Sachen machen. Entweder es ist bestanden oder nicht bestanden. Hier ist der Code, den ich geschrieben habe. Es gibt mir keine Fehler, noch läuft es richtig. Wenn ich ein SN eintrage, weiß ich, dass es keine Einträge hat, es führt nicht den zweiten Teil (den Fehlerteil).VBA-SQL-Abfrage mit verschiedenen Aktionen je nach Ergebnis
Private Sub SQL_Check()
Dim rs As DAO.Recordset
Dim sqlMax As String
Dim result As String
sqlMax = "Select count(1) FROM dbo_Event WHERE [AssemblyNo] = 'SYSCHATESTE' and [SerialNo] = '" & Me.txtUnitNo & "' and [ProcessTyp] = 'SF1';"
Set rs = CurrentDb.OpenRecordset(sqlMax)
If rs.Fields.Count = 1 Then
txtECCT.BackColor = vbGreen
txtECCT.ForeColor = vbBlack
txtECCT.Value = "Passed"
GoTo la
End If
If rs.Fields.Count = 0 Then
Set rs = Nothing
Set db = CurrentDb
Set rec = db.OpenRecordset("Select * from tblScannedParts")
rec.AddNew
rec("Inspector") = Me.txtUserId
rec("PO Number") = Me.txtWorkOrderNo
rec("Assembly") = Me.txtAssem
rec("SERIAL Number") = Me.txtUnitNo
rec("DateScanned") = CStr(Now())
rec("Result") = "Failed"
rec("Defect Type") = "Missing ECCT"
rec("Comments") = strFileContent
rec("Qty") = "1"
rec.Update
txtStatus.BackColor = vbRed
txtStatus.ForeColor = vbBlack
txtStatus.Value = "Failed"
MsgBox "Please take unit to NCM Cart for review.", vbCritical, "Unit Not Ready for DOF QA"
txtAssem.SetFocus
End If
la:
Set rs = Nothing
End Sub
Die Datensatz 'rs' auf einem' SELECT' basiert, die ein Feld zurückgibt, so dass Ihre 'If' Zustand,' rs.Fields.Count = 1 ', wird immer wahr sein. – HansUp
Danke. Ich habe eine Variable hinzugefügt. Wenn rs.Fields.Count = 1 Dann result = rs.Fields (0) Ende Wenn und hatte die Überprüfung basierend darauf durchgeführt. Scheint jetzt zu arbeiten. –