Ik heb een probleempje,
Wanneer ik een factuur ingeef is het de bedoeling dat de klant een aantal bieren kan bestellen. Nadat de klant bv 2 bieren aanvraagt die hij/zij wil aankopen wordt er op de knop factuur toevoegen geklikt. De bieren die aangekocht worden staan in een gegevensblad in een subformulier.
Wanneer op de knop factuur toevoegen wordt geklikt wordt er in de tabel bier nagekeken of er nog genoeg stock aanwezig is. Het probleem is echter dat de code enkel het laatst ingegeven bier controleerd en voorgaande bieren negeert. Hij voegt ze wel toe in de tabel maar zonder controle. Weet iemand hoe ik ALLE bieren van dit gegevensblad kan controleren?
'Bij aantalbieren kijkt hij naar het huidige record, omdat alle records in deze db toch bij 1 beginnen krijg ik hier het aantal bieren.
aantalbieren = FACTUUR_TOEVOEGEN_ARTIKELLEN.Form.CurrentRecord
'De teller zou dus van bier 1 tot het aantal moeten gaan
For teller = 1 To aantalbieren
Dim dbs As Database
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim rs3 As DAO.Recordset
Dim rs4 As DAO.Recordset
Set dbs = CurrentDb
Set rs1 = dbs.OpenRecordset("BIER", dbOpenDynaset)
Set rs2 = dbs.OpenRecordset("FACTUURARTIKEL", dbOpenDynaset)
Set rs3 = dbs.OpenRecordset("BESTEL", dbOpenDynaset)
Set rs4 = dbs.OpenRecordset("BESTELARTIKEL", dbOpenDynaset)
rs1.FindFirst "[BierNr] = " & FACTUUR_TOEVOEGEN_ARTIKELLEN!BierNr
rs2.FindFirst "[FactuurNr] = " & FactuurNr
If FACTUUR_TOEVOEGEN_ARTIKELLEN!Factuuraantal > rs1!In_stock Then
If MsgBox("Er zijn nog slechts " & rs1!In_stock & " bakken in stock voor bier '" & rs1!Naam & "'" & vbCrLf & "Wil de klant de resterende " & FACTUUR_TOEVOEGEN_ARTIKELLEN!Factuuraantal - rs1!In_stock & " bak(ken) laten bestellen?", vbInformation + vbYesNo, "Stock uitgeput") = vbYes Then
Dim al As Integer
rs3.AddNew
rs3!Leverdatum = Date
rs3!BrouwerNr = rs1!BrouwerNr
al = rs3!LeverNr
rs3.Update
rs4.AddNew
rs4!LeverNr = al
rs4!BierNr = rs2!BierNr
rs4!Aantal = FACTUUR_TOEVOEGEN_ARTIKELLEN!Factuuraantal - rs1!In_stock
rs4.Update
rs3.Close
rs4.Close
End If
rs2.Edit
rs2!Factuuraantal = rs1!In_stock
rs2.Update
rs2.Close
rs1.Close
End If
Next teller
Hoop op reactie en alvast bedankt
Wanneer ik een factuur ingeef is het de bedoeling dat de klant een aantal bieren kan bestellen. Nadat de klant bv 2 bieren aanvraagt die hij/zij wil aankopen wordt er op de knop factuur toevoegen geklikt. De bieren die aangekocht worden staan in een gegevensblad in een subformulier.
Wanneer op de knop factuur toevoegen wordt geklikt wordt er in de tabel bier nagekeken of er nog genoeg stock aanwezig is. Het probleem is echter dat de code enkel het laatst ingegeven bier controleerd en voorgaande bieren negeert. Hij voegt ze wel toe in de tabel maar zonder controle. Weet iemand hoe ik ALLE bieren van dit gegevensblad kan controleren?
'Bij aantalbieren kijkt hij naar het huidige record, omdat alle records in deze db toch bij 1 beginnen krijg ik hier het aantal bieren.
aantalbieren = FACTUUR_TOEVOEGEN_ARTIKELLEN.Form.CurrentRecord
'De teller zou dus van bier 1 tot het aantal moeten gaan
For teller = 1 To aantalbieren
Dim dbs As Database
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim rs3 As DAO.Recordset
Dim rs4 As DAO.Recordset
Set dbs = CurrentDb
Set rs1 = dbs.OpenRecordset("BIER", dbOpenDynaset)
Set rs2 = dbs.OpenRecordset("FACTUURARTIKEL", dbOpenDynaset)
Set rs3 = dbs.OpenRecordset("BESTEL", dbOpenDynaset)
Set rs4 = dbs.OpenRecordset("BESTELARTIKEL", dbOpenDynaset)
rs1.FindFirst "[BierNr] = " & FACTUUR_TOEVOEGEN_ARTIKELLEN!BierNr
rs2.FindFirst "[FactuurNr] = " & FactuurNr
If FACTUUR_TOEVOEGEN_ARTIKELLEN!Factuuraantal > rs1!In_stock Then
If MsgBox("Er zijn nog slechts " & rs1!In_stock & " bakken in stock voor bier '" & rs1!Naam & "'" & vbCrLf & "Wil de klant de resterende " & FACTUUR_TOEVOEGEN_ARTIKELLEN!Factuuraantal - rs1!In_stock & " bak(ken) laten bestellen?", vbInformation + vbYesNo, "Stock uitgeput") = vbYes Then
Dim al As Integer
rs3.AddNew
rs3!Leverdatum = Date
rs3!BrouwerNr = rs1!BrouwerNr
al = rs3!LeverNr
rs3.Update
rs4.AddNew
rs4!LeverNr = al
rs4!BierNr = rs2!BierNr
rs4!Aantal = FACTUUR_TOEVOEGEN_ARTIKELLEN!Factuuraantal - rs1!In_stock
rs4.Update
rs3.Close
rs4.Close
End If
rs2.Edit
rs2!Factuuraantal = rs1!In_stock
rs2.Update
rs2.Close
rs1.Close
End If
Next teller
Hoop op reactie en alvast bedankt