18. juni 2004 - 10:38Der er
26 kommentarer og 1 løsning
Egenskaben Destinationsdatabase for en forespørgsel
Er der en eller anden måde hvorpå man vha. VBA kan ændre egenskaben Destinationsdatabase for en given forespørgsel? Det er ikke fordi jeg synes det er for lang tid at skulle ændre feltet for 7 forespørgsler (under 5 min.), men fordi jeg skal gøre det HVER GANG jeg checker min developer version ud fra VSS og lægger den i produktionsmappen, hvilket er ca. 8-10 gange hver dag! Nå, ja, også fordi det er spildtid ad Helveg til! :(
Disse 2 egenskaber er blot en del af forespørgslens SQL. Denne kan du ændre således:
Dim db as Database Dim qdef as Querydef Set db = Currentdb Set qdef = db.Querydefs("Din forespørgsel") qdef.SQL = "INSERT INTO [ny tabel] IN 'C:\Dokumenter\Dindb.mdb' SELECT FROM [Din tabel];"
Jamen, det er jo lige hvad jeg er ude efter. Takker mange gange. Så skal jeg bare hamre en formel sammen med en knap på, så VedKlik ændres Destinationstabel og database for alle de ønskede forespørgsler. KANON!
Disse 2 egenskaber er som sagt ikke 'rigtige' egenskaber. Langt de fleste af egenskaberne i egenskabsarket resulterer blot i ændringer i SQL'en på samme måde.
De 'rigtige' egenkaber (f.eks. egenskaben SQL, som vi brugte herover) refererer du til på samme måde:
Msgbox currentdb.querydefs("qryMyQuery").Name
Prøv selv at skriv: Msgbox currentdb.querydefs("qryMyQuery") efterfulgt af punktum, hvorved listen over egenkaber og metoder kommer frem (de grønne er metoder = handlinger)
hmm, jeg kan se, at jeg glemte et ' i mit sidste eks. Den skal se således ud: currentdb.querydefs("qryMyQuery ").SQL = "INSERT INTO [Tabel i MyDatabase] IN 'C:\MyDatabase.mdb' SELECT FROM [Din tabel denne database];"
Meningen var at jeg ville have erstattet SELECT * INTO MinTabel IN 'C:\MinDatabase.mdb' med SELECT * INTO MinTabel IN 'C:\MinDatabase2.mdb' uden dog at skulle skrive indholdet af forespørgslen i VBA koden
Ja, det er et problem, som jeg ofte støder på i andre sammenhænge. :o(
Jeg plejer gerne at have en skabelon-query, som jeg går ud fra. I dette tilfælde kunne den have SQL'en: SELECT * INTO MinTabel IN 'C:\dummy.mdb' og måske hedde: "qryOverførMinTabel_Skabelon" Herefter kører jeg så bare denne linie: CurrentDb.QueryDefs("qryOverførMinTabel").SQL = replace(CurrentDb.QueryDefs("qryOverførMinTabel_Skabelon").SQL, "'C:\dummy.mdb'", "'C:\MinDatabase2.mdb'")
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.