나는이 추가됩니다 어디, 공급 업체 양식을 생성하고 Supplier_Name
그리고이 Supplier_Code
자동 생성의 첫 두 글자를 복용하는 것입니다 Supplier_Name
및이 개 업체는 예를 들어 같은 첫 두 문자가있는 경우에 대한 고유 번호를 추가 :
VBA를 처음 사용하고 다음을 시도했지만 작동하지 않습니다.
Private Sub Supplier_Name_AfterUpdate()
Dim DB As Database
Dim RS As Recordset
Dim SQL As String
Dim var1 As String
var1 = Left(Me.Supplier_Name.Value, 2)
SQL = "SELECT Supplier_ID, LEFT(Supplier_Name,2) AS charsupplier, count (Supplier_Name) AS countSupplier " _
& "FROM Suppliers " _
& "WHERE charsupplier = var1 " _
& "ORDER BY Supplier_ID"
Set DB = CurrentDb
Set RS = DB.OpenRecordset(SQL, dbOpenDynaset)
Me.Supplier_Code = var1 & Format$(RS!countSupplier, "00")
End Sub
누구든지 돕거나 다른 방법을 제안 할 수 있다면 큰 감사가 될 것입니다.
편집 : 내 접근 방식의 결함은 이것이 새 레코드에 있으면 supplier_ID가 테이블에 저장되지 않고 쿼리에 사용할 수 없다는 것입니다.
다음 코드로 내 문제를 해결했습니다.
Private Sub Supplier_Name_LostFocus()
If IsNull([Supplier_Code]) Then
Dim DB As Database
Dim RS As Recordset
Dim var2 As String
Dim var1 As String
Dim var3 As String
var1 = Left(Me.Supplier_Name, 2)
var2 = "SELECT count(*) AS CountSupplier " & _
"FROM Suppliers " & _
"WHERE left(Suppliers.[Supplier_Name],2)='" & var1 & "';"
' MsgBox (var2)
Set DB = CurrentDb
Set RS = DB.OpenRecordset(var2, dbOpenDynaset)
var3 = RS!CountSupplier + 1
Me.Supplier_Code = UCase(var1) & Format(var3, "00")
End If
End Sub
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다