VBA: Hvordan lese data fra tabell til et array

Submitted by lroedal on Sun, 12/10/2017 - 23:47

Dersom du ønsker å lese data fra en tabell, og jobbe med innholdet uten nødvendigvis å endre kilden, kan det være fordelaktig å lese dataene inn i et array. Dette vil i tillegg gjøre programmet raskere om du ikke skal benytte alle dataene fra tabellen, og kun trenger noen av feltene. I kode-eksempelet under, antar vi at vi har en ordre-tabell med kundeinfo, betalingsinfo og annet. Men det eneste vi ønsker å hente ut, er fakturanr. og total sum innbetalt. Dette lar seg enkelt gjennomføre, som du kan se i koden under.

  1. Dim rstOrdre as DAO.Recordset 'DAO er standard for Access, og for å slippe problemerer deklarerer vi spesifikt.
  2. Set rstOrdre = CurrentDB.OpenRecordset("Ordre")
  3.  
  4. Dim teller as integer
  5. teller = 1 'Denne telleren bruker vi for å angi plassering i arrayene som skal lagre informasjonen
  6.  
  7. 'Under bruker jeg to arrays. Alternativt (siden det er forskjellige datatyper) kunne du laget din egen datatype, og et array av denne.
  8. Dim fakturaNumre() as Long
  9. Dim totalSum() as Double
  10.  
  11. 'Her angir vi størrelsen på arrayene (øverste plass er det samme som antallet oppføringer i tabellen.)
  12. Redim fakturaNumre(1 to rstOrdre.RecordCount)
  13. Redim totalSum(1 to rstOrdre.RecordCount)
  14.  
  15. 'Looper gjennom tabellen
  16. If Not (rstOrdre.EOF And rstOrdre.BOF) Then
  17. rstOrdre.MoveFirst
  18. Do Until rstOrdre.EOF = True
  19. 'legger inn de to feltene i arrayene
  20. fakturaNumre(teller) = rstOrdre("Fakturanr").Value
  21. totalSum(teller) = rstOrdre("Totalbeløp").Value
  22. teller = teller + 1 'inkrementerer teller
  23. rstOrdre.MoveNext
  24. Loop
  25. End If