Avatar billede madshenrik Nybegynder
14. juli 2000 - 20:40 Der er 10 kommentarer og
1 løsning

Excel og Access

I Access har jeg en database med en forespørgsel fra denne forespørgsel ønsker jeg at hente et navn ind i en celle i Ecxel hvor det tilsvarende kundenummer er lig et nummer som jeg har skrevet i en celle i Excel uden at det er nødvendigt at opdatere, dette ved jeg skal kunne gøres i sql samt VB blot ved jeg ikke hvordan.
Er der nogen der kan hjælpe ???
Hansen
Avatar billede nerøs Nybegynder
17. juli 2000 - 00:55 #1
Man kan godt kalde en access query fra excel, men det er enklere at spørge direkte i tabellen:

Placer følgende i et modul ( med de korrekte constant parametre):


Function HentKunde(nr As Integer, Feltnavn As String) As String
    'sti til databasen:
    Const STI = "C:\WINDOWS\Profiles\Søren\Dokumenter\"
    'Navn på databasen:
    Const STRDB = "db1.mdb"
    'navn på tabel:
    Const TABEL = "table1"
   
    Dim db As Database
    Dim q As QueryDef
    Dim rs As Recordset
    Dim strsql As String
   
    'SQL streng:
    strsql = "SELECT * FROM " & TABEL & " WHERE nr=" & nr
   
    Set db = OpenDatabase(STI & STRDB)
    Set rs = db.OpenRecordset(strsql)
    If Not rs.EOF Then HentKunde = rs.Fields(Feltnavn)
    db.Close
End Function

I et arkmodul kan HentKunde funktionen herefter kaldes fra Change eventet:


Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then Range("A2") = HentKunde(Target.Value, "NAVN")
End Sub

(Feltet i tabllen hedder "navn". ´Hvis der skrives nummer i celle A1, vil navn fenkomme i a2 hvis det findes i access tabellen)

VH søren
Avatar billede nerøs Nybegynder
17. juli 2000 - 01:00 #2
Du kan også kalde Hentkunde funktionen direkte som en regnearksfunktion ved at skrive:
=Hentkunde(a1,"navn")
Avatar billede madshenrik Nybegynder
18. juli 2000 - 18:12 #3
Kan ikke helt få det til at virke. Den har godt nok forbindelse til databasen men den hente ikke navnet.
Avatar billede madshenrik Nybegynder
08. august 2000 - 23:39 #4
nerø tak for hjælpen indtil videre men det virker ikke som det skal, nu kan den ikke genkende mdb formattet, hvorfor. Der kan sagtens blive tale om flere point, hvis du har en løsning
Avatar billede nerøs Nybegynder
09. august 2000 - 19:57 #5
Tja.. Jeg skifter mellem Access 97 og access 2000
som bruger et andet format end 97\'eren. Så hvis du har konverteret db\'en til access 2000 kan den ikke kaldes fra Excel 97.

Noget andet er at du i VBA skal huske at lave en reference til DAO. Men det lyder ikke som om det er det der er problemet.

VH Søren
Avatar billede madshenrik Nybegynder
12. august 2000 - 00:03 #6
Det forekommer mig som om der er nogle fejl i koden, ved dog ikke om dette er rigtigt bl.a. dette (WHERE nr=\" & nr) skulle dette ikke være noget i retningen af WHERE nr=\" & \"$A$1\"
Avatar billede nerøs Nybegynder
12. august 2000 - 14:03 #7
Det skulle være godt nok med nr, idet parameteren overføres fra regnearket. Hvis du i regnearket skriver =hentkunde(a1;\"navn\"), overfører funktionen værdien i a1 via nr.
Hvis der f.eks. står 10 i celle a1, bliver sql strengen:
\"SELECT * FROM TABLE1 WHERE nr= 10\"   
 

Jeg kan prøve at sende dig et lille eksempel regneark og database

VH Søren
Avatar billede madshenrik Nybegynder
26. august 2000 - 19:57 #8
Ja tak det ville være skide godt. Har ikke haft tid til at arbejde med det ret meget men begynder nu.
Avatar billede nerøs Nybegynder
27. august 2000 - 17:57 #9
Det kræver blot en adresse
Avatar billede madshenrik Nybegynder
28. august 2000 - 13:51 #10
Glemte det. Her er den så
mads.hansen@mobilixnet.dk
Jeg her utrolig store problemer med at køre eksperten der hjemme på mit ISDN 2 modem kender du til dette. Blot en side bemærkning på forhånd tak for eksemplet. 
Avatar billede madshenrik Nybegynder
03. september 2000 - 22:37 #11
tak for hjælpen
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