Avatar billede CPP Nybegynder
25. september 2012 - 17:55 Der er 18 kommentarer

Word med data fra Access

Hej Eksperter

Er det muligt at Word henter data fra en Access database til en ComboBox i et UserForm?

Jeg har et Word skabelon hvor UserForm bliver vist med en ComboBox.

Er det mulig at får vist data fra databasen i ComboBox og på denne måde (Produkt/Producent) og efter man har valt et produkt bliver data overført til TextBox'er?

Håber at I kan forstå hvad jeg mener og at I kan hjælp mig
Avatar billede supertekst Ekspert
25. september 2012 - 18:22 #1
Ja - det kan godt lade sig gøre.

Hvilken version af Office anvender du?

.. og så velkommen til Eksperten..
Avatar billede CPP Nybegynder
25. september 2012 - 18:41 #2
Hej Supertekst

Jeg bruger Office 2010
Avatar billede supertekst Ekspert
25. september 2012 - 21:04 #3
Prøver at finde et eksempel - vender tilbage..
Avatar billede supertekst Ekspert
26. september 2012 - 10:19 #4
Rem Referencen til DB skal sættes under Tools / References/ Microsoft Office xx.0 Access database engine object Library

Rem
Const dataBaseNavn = "Database.accdb"
Const stiNavn = "C:\Users\peter\Desktop\FraAccessTilWord" '<--justeres
Public db, produkt
Private Sub åbnDatabase()
    Set db = OpenDatabase(stiNavn & "\" & dataBaseNavn)
End Sub
Private Sub åbnProdukt()
    åbnDatabase
    Set produkt = db.OpenRecordset("produkt")
End Sub
Private Sub lukProdukt()
    produkt.Close
End Sub
Public Sub LukDb()
    db.Close
End Sub
Public Sub hentprodukt()
    åbnProdukt
    For r = 1 To produkt.RecordCount
        With produkt
            UserForm1.ComboBox1.AddItem .Fields(1)
            .MoveNext
        End With
    Next r
    lukProdukt
End Sub
Private Sub UserForm_activate()
    hentprodukt
    ComboBox1.DropDown
End Sub
Avatar billede CPP Nybegynder
10. oktober 2012 - 18:28 #5
Hej supertekst

Undskul jeg først svar dig nu, men jeg har ikke fået nogle mail om at duer kommet med et svar, det var lidt underligt, jeg prøver med det samme om det virker
Avatar billede CPP Nybegynder
10. oktober 2012 - 19:42 #6
Hej Supertekst

Jeg har prøvet det, men den fejler, detsværre.

Der kommer en Run-time error -2147352571 (80020005) - Typeuoverensstemmelse.

Jeg tro det er ved denne kode som det gå galt, håber du vil bager over med mig, da jeg ikke verdensmester i VBA.

Public Sub hentprodukt()
    åbnProdukt
    For r = 1 To produkt.RecordCount
        With produkt
            UserForm1.ComboBox1.AddItem .Fields(1)
            .MoveNext
        End With
    Next r
    lukProdukt
End Sub
Avatar billede supertekst Ekspert
10. oktober 2012 - 23:06 #7
Hej CPP

Prøv at trykke på Debug, når fejl meddeles. Så åbnes der til VBA-koden i den linje, hvor fejl opstår - er markeret.

Hvis du så aflæser linjens nr øverst til højre - eller beskriver hvad er står i linjen - så kan vi måske komme videre..
Avatar billede CPP Nybegynder
11. oktober 2012 - 11:20 #8
Dete er i linjen "UserForm1.ComboBox1.AddItem .Fields(1)"
Avatar billede supertekst Ekspert
11. oktober 2012 - 11:45 #9
Det er uden tvivl et felt, er er tomt - tilpas selv feltNummer i de markerede linjer - heraf to nye:

Public Sub hentprodukt()
    åbnProdukt
    For r = 1 To produkt.RecordCount
        With produkt
            If .Fields(feltNummer) <> "" Then      'ny
                UserForm1.ComboBox1.AddItem .Fields(feltNummer) 'ny
            End If                        'ny
            .MoveNext
        End With
    Next r
    lukProdukt
End Sub
Avatar billede CPP Nybegynder
11. oktober 2012 - 17:47 #10
Nu henter den data fra Databasen, men hvordan får jeg ComboBoxen til ikke at starte med at være udrullet?

Er det muligt at få ComboBoxen til at vise to kolonner fra Databasen på følgende måde Produkt/Producent?
Avatar billede CPP Nybegynder
11. oktober 2012 - 17:58 #11
Hej supertekst

Hant ud af det første med at ComboBoxen starter med at være udrullet
Det er bare ComboBox1.DropDown som skal slet fra nedenstående kode

Private Sub UserForm_activate()
    hentprodukt
    ComboBox1.DropDown
End Sub

Men ved du hvordan om man kan overføre dflere data til en textbox når man har valgt et Produkt i ComboBoxen.
Jeg vil gerne kune overføre f.eks pris, vægt, størelse, osv. som befinder sig i samme database
Avatar billede supertekst Ekspert
11. oktober 2012 - 22:51 #12
Fint så langt - ja - vender tilbage senere/i morgen..
Avatar billede supertekst Ekspert
12. oktober 2012 - 09:03 #13
Spørgsmål: Feltet, der vises i ComboBox1 er det et nøglefelt, der således kan anvendes til at hente den ønskede record i tabellen?
Avatar billede CPP Nybegynder
13. oktober 2012 - 13:55 #14
Nøglefelt i Access tabelen hedder Id og er auto nr.
Avatar billede CPP Nybegynder
13. oktober 2012 - 14:03 #15
Har overføre dine kodet fra en simpel Word skabelon til min rigtige skabelon og nu for jeg run-time error 424 og den gå er stå i følgende linje - Set kontakt = db.OpenRecordset("produkt")

Ved godt at du selvfølge ikke ved hvad jeg har i min skabelon af koder, men har du et bud på hvorfor den nu går i stå, det virket jo fint i den simpel skabelon

Du må undskyldt alle de her dumme spørgsmål, men jeg vil bare gerne kunne forstå det, men det gå bare ikke så godt for mig :o(
Avatar billede supertekst Ekspert
13. oktober 2012 - 14:09 #16
Produkt er den tabel fra en bestående database, som jeg har anvendt som eksempel. Du skal indsætte navnet på din "egen tabel".
Avatar billede CPP Nybegynder
13. oktober 2012 - 14:20 #17
Det har jeg ændret.

Skrivet det kun så du kunne se hvor den gik i stå - så det ikke blev forvirrende
Avatar billede supertekst Ekspert
13. oktober 2012 - 15:00 #18
Jeg kan ikke hjælpe mere - håber andre kommer til...
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
Kurser inden for grundlæggende programmering

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