Toon posts:

[VB, ACCESS]Record toevoegen & Autonummering

Pagina: 1
Acties:
  • 154 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik wil een record toevoegen dmv. update. Ik heb zes velden in de tabel waarvan de eerste de autonummering bevat. Met de code die ik geschreven heb maakt hij geen nieuw record aan + de nieuwe autonummering (Sleutel in de tabel) maar schrijft hij over het huidige record heen (Laatst geselecteerde). Hoe pas ik het aan?

Bijgaand mijn code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub cmdToevoegen_Click()
If cmdToevoegen.Caption = "Toevoegen" Then
        For i = 0 To 6
        txtLeverancier(i) = ""
    Next i
        txtLeverancier(0).Locked = True
        txtLeverancier(0).Text = "Auto"
        cmdToevoegen.Caption = "Opslaan"
Else
    cmdToevoegen.Caption = "toevoegen"
If (IsNumeric(txtLeverancier(5))) Then
For i = 1 To 6
    rsFietsen.Fields(i) = (txtLeverancier(i))
Next i
    rsFietsen.AddNew
    MsgBox "Opgeslagen"
Else
MsgBox "u kunt alleen numerieke waarden invoeren!"
End If
End If
End Sub

  • mboy
  • Registratie: December 2001
  • Laatst online: 20-06-2024
Dat komt, denk ik, omdat je maar een kaar addnew doet. Voor zover ik weet is het zo dat je voordat je de juiste waardes aan de velden gaat hangen een eerste keer addnew doet.

Als je dat hebt gedaan hang de waardes aan je velden en daarna doe je nog een keer addnew.

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
Records toevoegen doe je imho best mbhv een INSERT SQL statement ipv met die Addnew en Update methods van de recordset. Ik vind dat maar ranzig. ;)

Mbhv een INSERT statement kan je (imho dan weer) ook veel eenvoudiger een record toevoegen.

[ Voor 58% gewijzigd door whoami op 03-06-2003 16:45 ]

https://fgheysels.github.io/


  • xtra
  • Registratie: November 2001
  • Laatst online: 13-08 11:30
Voorzover ik me kan herinneren doe je eerst AddNew. Vervolgens wijzig je de velden en met Update sla je alles op.
In jouw geval wijzigt hij de velden van de huidige records en voegt daarna pas een nieuwe in. Dat klopt dus met je uitleg.

code:
1
2
3
4
5
rsFietsen.AddNew
For i = 1 To 6
    rsFietsen.Fields(i) = (txtLeverancier(i))
Next i
rsFietsen.Update

Verwijderd

Topicstarter
xtra schreef op 03 June 2003 @ 16:41:
Voorzover ik me kan herinneren doe je eerst AddNew. Vervolgens wijzig je de velden en met Update sla je alles op.
In jouw geval wijzigt hij de velden van de huidige records en voegt daarna pas een nieuwe in. Dat klopt dus met je uitleg.

code:
1
2
3
4
5
rsFietsen.AddNew
For i = 1 To 6
    rsFietsen.Fields(i) = (txtLeverancier(i))
Next i
rsFietsen.Update
Hmm, ik d8 dus weer eens veels te moeilijk na een dagje programmeren!
Idd, zo werkt hij wel.
Reuze bedankt!!!!

Verwijderd

xtra schreef op 03 June 2003 @ 16:41:
Voorzover ik me kan herinneren doe je eerst AddNew. Vervolgens wijzig je de velden en met Update sla je alles op.
In jouw geval wijzigt hij de velden van de huidige records en voegt daarna pas een nieuwe in. Dat klopt dus met je uitleg.
Dat kan ik bevestigen :Y)

Verwijderd

whoami schreef op 03 June 2003 @ 16:05:
Records toevoegen doe je imho best mbhv een INSERT SQL statement ipv met die Addnew en Update methods van de recordset. Ik vind dat maar ranzig. ;)

Mbhv een INSERT statement kan je (imho dan weer) ook veel eenvoudiger een record toevoegen.
Het is inderdaad de betere methode maar met de recordsetmethode is het veel makkelijker het nieuwe autonummer id op te halen.

ingeval id(autonummering) en naam als velden:

rs.Addnew
rs(1) = "test"
rs.Update
rs(0) bevat nu het nieuwe autonummerid

dit kost met de sql methode meer moeite, want daar zijn bijna uitsluitend brakke methodes voor in vba.
Pagina: 1