Avatar billede joemoz Nybegynder
12. maj 2008 - 16:04 Der er 5 kommentarer

Hente SQL data i Word

Jeg er ved at lave en makro i en Wordskabelon (Word 2003) der bl.a. skal hente data fra en SQL-server på baggrund af en query. Hvordan gør jeg lettest det? Wordskabelonen skal kunne distribueres ud til flere brugere, så jeg vil helst undgå noget der kræver opsætning på klient-PC'en.

Jeg har tidligere lavet et VB.NET program der benytter ADODB, men jeg kan ikke rigtig få det til at virke i Word.
Avatar billede supertekst Ekspert
12. maj 2008 - 17:48 #1
Er der ikke tale om en makro,der aktiveres når der dannes et dokument på basis af skabelonen?

Skal brugeren kunne vælge felter?
Avatar billede joemoz Nybegynder
12. maj 2008 - 18:41 #2
Jo - jeg har en autonew-makro som er sat op med felter - den del er på plads. Det er kun det med at indhente værdier fra SQL-serveren jeg er i tvivl om.
Avatar billede supertekst Ekspert
12. maj 2008 - 23:53 #3
Hvilke felter skal hentes - fra hvilken tabel/tabeller?
Avatar billede joemoz Nybegynder
13. maj 2008 - 00:07 #4
Skal vi ikke bare kalde det "Felt1" fra "Tabel1"? og SQL-serveren kan så hedde "SQLserver", med "brugernavn" og "password" som logon. Queryen: "SELECT FELT1 FROM TABEL1 WHERE FELT2='A'"
Avatar billede supertekst Ekspert
13. maj 2008 - 09:22 #5
Kan måske anvendes til inspiration:

Rem Referencen Microsoft DAO 3.6 Object Library Tilføjet
Rem Eksemplet hidrører fra Opkald til C5-SQL-database - søgning af OrdreNr i et Word-dokument


Public xsti
Rem C5_SQL-def.
Public C5qdfTemp As QueryDef, C5xRec As Recordset
Public ordreFundet As Boolean

Public C5sqlDB As Database
Public Sub åbnDatabase()            'Intet password pwd=""
Dim dbSti, xpW As String, brugerID As String
   
    brugerID = "SUPERVISOR"
    dbSti = xsti + "C5Spejl.mdb"
    Set C5sqlDB = OpenDatabase(dbSti, dbDriverNoPrompt, False, ";database=" + dbSti + ";uid=" + brugerID + ";pwd="";dsn=")
End Sub
Public Sub sqlFindOrdre(Onr)
Dim sfelt As String
    ordreFundet = False
    åbnDatabase
   
    Set C5qdfTemp = C5sqlDB.CreateQueryDef("")
    sfelt = Chr(39) + Onr + Chr(39)
    SQL_1 sfelt
End Sub
Private Sub SQL_1(sfelt As String)                      'find Ordre
    SQLOutput1 "SELECT * FROM OrdkartArkiv " & _
      "WHERE" & "(nummer = " & sfelt & ")", C5qdfTemp
End Sub
Private Sub SQLOutput1(strSQL As String, qdfTemp As QueryDef)
Dim nFelt, count
    qdfTemp.SQL = strSQL
    Set C5xRec = qdfTemp.OpenRecordset
   
    If C5xRec.RecordCount > 0 Then
        ordreFundet = True
    Else
        ordreFundet = False
    End If
End Sub
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