1
リンクテーブルのクエリを実行しようとしています。私は結果を得た後、私は2つの事の1つを行う必要があります。それが合格したか失敗したかのいずれか。ここに私が書いたコードがあります。それは私にエラーを与えないし、正しく実行されません。私がSNを入力するとき、それは2番目の部分(失敗部分)を実行しないエントリを持っていない知っている。結果に応じて異なるアクションのVBA SQLクエリ
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
レコードは 'rs'は、1つのフィールドを返す' SELECT'ので、あなたの 'If'条件、' rs.Fields.Count = 1 'に基づいており、常にTrueになります。 – HansUp
ありがとうございます。私は変数を追加しました。 If rs.Fields.Count = 1 Then result = rs.Fields(0) End Ifそれに基づいてチェックが行われました。今働いているようだ。 –