Ga naar inhoud

access: waarde van vorig record als default in huidig record


anoniem

Aanbevolen berichten

Ik ben bezig een database te bouwen voor het bijhouden van ontvangen facturen. Die facturen die krijgen allemaal een stempel met zo'n stempel die automatisch doornummert. Dit nummer komt natuurlijk in mijn database, maar 99 van de 100 keer is het volgende nummer gelijk aan het vorige nummer + 1. Nu wil ik graag als defaultwaarde in het veld "waarde laatste record + 1" opnemen. maar ik krijg het niet voor elkaar. Hoe ga ik te werk?
Link naar reactie
heb de volgende query gegenereerd: [code:1:9ac1b2b9ec]SELECT TOP 1 tblVouchers.VoucherNumber FROM tblVouchers ORDER BY tblVouchers.InvoiceID DESC;[/code:1:9ac1b2b9ec]Ik heb voor de ID gekozen, omdat ik per dag wel 100 facturen inbreng, dus de datum is niet uniek genoeg in de query staat nu "3" en dat klopt: er zitten 3 vouchers in de tabel en het hoogste nummer is 3. In mijn form blijft het veld echter "1" roepen
Link naar reactie
tblEntities EntityID*(1) EntityName tblVouchers InvoiceID* Entity(1) EntryDate VoucherNumber(2) Supplier Expired Comment User tblMailto MailtoID Voucher(2) MailtoName SendDate ReturnDate Comment Reason User Feitelijk heb ik dus geen enkel idee waar ik die ene er bij op moet tellen. mijn laatste probeersel was om in de property "default value" de volgende formule op te nemen:[code:1:c7d29f0dcc]=[qryLastRecord]![LastOfVoucherNumber][/code:1:c7d29f0dcc]Volgens mij heb ik dan altijd nog de keuze of ik van de Query een Expressie maak en er 1 bij optel, of ik mik +1 achter de formule. toch gaat het nog steeds niet goed...
Link naar reactie
In de hoop dat ik niet inbreek in een Levendige discussie :wink: Wat je kunt doen als je niet bang bent voor een klein beetje VBA: Plaats de volgende code in het OnCurrent Event van je formulier. [code:1:b93a03cdcd] Dim cnn As ADODB.Connection Dim rst As New ADODB.Recordset Dim strSQL As String Dim lngNummer As Long If Me.txbVouchernummer Is Null Then strSQL = "SELECT max(Vouchernummer) FROM tblVouchers;" Set cnn = CurrentProject.Connection rst.Open strSQL, cnn, adOpenDynamic rst.MoveFirst lngNummer = rst.Fields(0).Value + 1 Me.txbVouchernummer = lngNummer End If [/code:1:b93a03cdcd] Suc6,
Link naar reactie
  • 3 weken later...
[code:1:ea278e8d45]Option Compare Database Private Sub Form_Current() Dim cnn As ADODB.Connection Dim rst As New ADODB.Recordset Dim strSQL As String Dim lngNummer As Long If Me.Vouchernumber Is Null Then strSQL = "SELECT max(Vouchernumber) FROM tblVouchers;" Set cnn = CurrentProject.Connection rst.Open strSQL, cnn, adOpenDynamic rst.MoveFirst lngNummer = rst.Fields(0).Value + 1 Me.Vouchernumber = lngNummer End If End Sub[/code:1:ea278e8d45]Ik heb even de code opnieuw gepost want er zaten een paar spelfoutjes in, maar ik krijg een foutmelding in de IF regel en ik snap niet goed wat er mis is
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...