magnujf Skrevet 22. juni 2005 Del Skrevet 22. juni 2005 Hi! Jeg ønsker å bruke egen variabler i en autgenerert/makrogenerert/wizardgenerert spørring som blir kjørt fra excel mot access Her er koden ////////////////////////////////////////////////// Sub first_home() ' ' first_home Macro ' Macro recorded 22.06.2005 by Magnus ' Dim conString As String conString = "C:\Documents and Settings\Eier\Mine dokumenter\db2" MsgBox conString ' With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _ "ODBC;DSN=MS Access Database;DBQ=C:\Documents and Settings\Eier\Mine dokumenter\db2.mdb;DefaultDir=C:\Documents and Settings\Eier\Min" _ ), Array( _ "e dokumenter;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;")), _ Destination:=Range("Insert")) .CommandText = Array("SELECT Addresses.AddressID, Addresses.City, Addresses.AccountName" & Chr(13) & "" & Chr(10) & "FROM _ *********************************************************** I denne delen vil jeg bruke variabelen jeg har kalt conString (deklarert og initialisert over) *********************************************************** _ .Addresses Addresses" & Chr(13) & "" & Chr(10) & "WHERE (Addresses.AddressID=2)") .Name = "Query from MS Access Database" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = True .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .PreserveColumnInfo = True .Refresh BackgroundQuery:=True End With End Sub Spørsmålet jeg får hele tiden runtime error 1004 hvis jeg skriver "conString" eller 'conString" Er det i det hele tatt mulig å putte inn egen variabler i en query wizard generert spørring? Noen forslag? Magnus Lenke til kommentar
aadnk Skrevet 25. juni 2005 Del Skrevet 25. juni 2005 Jeg antar du ønsker å benytte variabelen conString som en metode å spesifisere filnavnet til databasen det skal gjøres en tilknytning til. Ennvidere tror jeg du har støtt på problematikk ved markogeneratorens anvendelse av arrayer - en anvendelse jeg ikke helt ser helt nytten av. Dette kan uansett fint omgås ved å lage tilkoblingsstrengen således: Dim sFile As String, conString As String, sSQL As String ' Filstien til databasen som skal åpnes sFile = "C:\Documents and Settings\Eier\Mine dokumenter\db2.mdb" ' Husk at etternavnet til filen må inkluderes ' Følgende kode genererer tilkoblingsstrengen conString = "ODBC;DSN=MS Access 97 Database;" conString = conString & "DBQ=" & sFile & ";" conString = conString & "DefaultDir=" & Left(sFile, InStrRev(sFile, "\") - 1) & ";" conString = conString & "DriverId=281;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;" Etter dette må du lage SQL-spørringen: ' Lag SQL-strengen sSQL = "SELECT Addresses.AddressID, Addresses.City, Addresses.AccountName" & vbNewLine sSQL = sSQL & "FROM .Addresses Addresses" & vbNewLine sSQL = sSQL & "WHERE (Addresses.AddressID=2)" Hvorpå du kan kalle Add-funksjonen (linjene makrogeneratoren inkluderer videre er standardverdier, og trengs ikke endres): ActiveSheet.QueryTables.Add sConn, Range("Insert"), sSql Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå