VBA: Hvordan legge til en oppføring i en tabell programmatisk

Submitted by lroedal on Mon, 12/11/2017 - 00:11

Dersom du ønsker å legge til oppføringer i en tabell i Microsoft Access, uten å gjøre dette direkte i tabellen, kan det være nyttig å kunne den programmatiske måten å legge til oppføringer på. Dette kan du programmere inn i et skjema, slik at brukeren av databasen din kan legge til nye oppføringer på en enkel og oversiktlig måte. For dette eksempelet kan vi anta at vi har en tabell for kunder, hvor vi vil lagre navn, adresse og telefonnr. for potensielle kunder. Du kan se kodevinduet under for et eksempel på hvordan det kan gjennomføres.

(Om du foretrekker INSERT INTO fremfor .AddNew, står det om dette her.)

  1. 'Først må du sette opp et Recordset som baserer seg på tabellen din
  2. Dim stdset as DAO.Recordset 'deklarer Recordsetet
  3. Set stdset = CurrentDB.OpenRecordset("kundetabell") 'Definerer Recordsetet til kundetabellen din
  4.  
  5. 'Deretter kan du deklarere nødvendige variabler
  6. Dim navn, adresse, telefonnr as String
  7.  
  8. 'Vi antar at brukeren har lagt informasjonen som skal legges inn i tekstbokser, vi henter den derfra
  9. 'Først sjekker vi om tekstboksene har innhold, har de ikke dette avslutter i kjøringen av koden
  10. If IsNull(Me.txtNavn.Value) or IsNull(Me.txtAdresse.Value) or IsNull(Me.txtTelefonnr.Value) Then
  11. Msgbox("Du har ikke fylt inn nødvendig informasjon. Prøv igjen.")
  12. Exit Sub 'avslutter koden
  13. End If
  14.  
  15. 'legger informasjonen fra tekstboksene inn i variablene
  16. navn = Me.txtNavn.Value
  17. adresse = Me.txtAdresse.Value
  18. telefonnr = Me.txtTelefonnr.Value
  19.  
  20. 'Legger inn ny oppføring i tabellen
  21. stdset.AddNew ' Vil du ikke bruke .AddNew, er det mulig å benytte InsertInto*
  22. stdset("Navn").Value = navn
  23. stdset("Adresse").Value = adresse
  24. stdset("Telefonnummer").value = telefonnr
  25. stdset.Update 'Denne er viktig, uten denne blir ikke oppføringen faktisk lagret.