Avatar billede kpringkobing Nybegynder
29. marts 2006 - 22:04 Der er 1 kommentar

Flet kundeoplysninger fra Access ind i Excel dok.

Jeg har en database som indeholder ca 400 forskellige kunder. Alle kunder er individualiseres med et entydigt kundenummer.

Jeg vil gerne have mulighed for automatisk at overføre kunde data fra Access over i et Excel dok.

Forestiller mig, at der i et felt i det på gældende Excel dok. skrives et Kundenummer, hvorefter øvrige kundedata automatisk "hentes" i Access. f.eks. følgende:

Kendt: Kundenummer
Henter:Kundenavn
      Adresse
      Post nummer

Jeg har ikke det store kendskab til Access, men er forholdvis fortrolig med Excel.

Skal der f.eks. laves en makro i Excel ??
Hvordan
Avatar billede eagleeye Praktikant
29. marts 2006 - 23:11 #1
Jeg ville lave det med en makro eller to.

Hvis du har et excel ark med dette layout:

      A                    B                C                  D
1 kundenummer  kundenavn  adresse    postnummer
2



Så lave to funktioner, den første er en standart funktion som bliver kaldt når arket ændres. Den er lavet sådan at hvis celle A2 har ændre sig kaldes den anden funktion som slår op i databasen. Den anden funktion ligger kundenavn ind i B2, adresse ind i C2 og postnummer ind i D2:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    'Cells(2,1) svar til A2, første tal = række, andet tal = kolonne
    If Target = Cells(2, 1) Then Call getinfo
End Sub


Sub getinfo()
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
'Husk at angive stien til databasen
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
        "Data Source=C:\sti\til\databasefilen\db1.mdb;"

Set rs = New ADODB.Recordset
 
'finder kundenummer
kundenr = Range("A2").Value

'Er kundenummer kolonnen definet som en tal kolonne skal der ikke ' omkring:
Sql = "select * from kundedata where kundenummer = '" & kundenr & "'"

Set rs = cn.Execute(Sql)
If Not rs.EOF Then
  Range("B2").Value = rs.Fields("Kundenavn")
  Range("C2").Value = rs.Fields("Adresse")
  Range("D2").Value = rs.Fields("postnummer")
Else
  Range("B2").Value = "Ukendt"
  Range("C2").Value = ""
  Range("D2").Value = ""
End If
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub



Den anden funktion skal tilpasses stien til databasen samt tabel og kolonnennavne.

For at kunne conecte til databasen skal du i excel:
1. Start the Visual Basic Editor and select your VBA project.
2. On the Tools menu, click References.
3. Click to select the most recent version of the Microsoft ActiveX Data Objects Library check box.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester