[Access]query via vba/macro wijzigen

Pagina: 1
Acties:
  • 769 views sinds 30-01-2008
  • Reageer

  • Choller
  • Registratie: Juli 2001
  • Laatst online: 22-05-2024
Eerst ff mezelf verdedigen:
Omdat er veel access vragen waren in PW open ik een topic hier (en niet in overig hardware). Bovendien gaat dit meer over de programeerkant.


Ik probeer een dynamische formulier te maken. Aan de hand van bepaalde criteria in de formulier wordt er een Access Report(rapport) gecreerd. Ik heb al een bepaalde SQL query gemaakt in de "query's" tab. Deze wil ik dus blijven wijzigen.

Ik weet niet hoe dit moet.

Dingen die ik heb geprobeerd:
RTFM
Google
http://search.gathering.tweakers.net/forum.php/find

Samenvatting: Hoe moet ik via de Visual Basic editor binnen Access de sql instructie van EEN macro wijzigen ?

Helaas heb ik geen code, alles wat ik heb geprobeerd is nutteloos.

een voorbeeld om de sql instructie proberen uit te halen:
code:
1
2
qrytxt = [qry Test ].QueryDef.SQL
Debug.Print qrytxt


aub alleen hulpzame reacties graag.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Welke versie van Access?

Voor zover ik weet kan je binnen Access gewoon macro's bewerken...

'k zal ff zoeken hoe


edit:
Je kan een field box joinen aan die queury text dmv

code:
1
=[naam_van_je_control]


Hoe wil je die query samenstellen?


edit2:
ow... lees je post nu nog een keer.... W8 ff...

[ Voor 52% gewijzigd door BtM909 op 26-02-2003 16:56 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Choller
  • Registratie: Juli 2001
  • Laatst online: 22-05-2024
Access 97.

Huh... jah, je kan macro's bewerken...... :?
Vraag is hoe ik de sql van een bepaalde query kan veranderen via Visual Basic Editor BINNEN Access (dus geen standalone VB)

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

hmmm... Kan zo 1 2 3 niet vinden hoe je dat object op de juiste manier kan benaderen, maar

kan je niet gebruik maken van een hidden veld, waarin je die (dynamische) query invult? Met de oplossing van mijn vorige post kan je dan in ieder geval je query dynamisch houden...

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Dumpen die macro's (converteren naar VBA en dan met het handje aanpassen!!)

alles wat met macro's kan, kan nog veel beter via VBA :9

dan kan je het op de volgende manier doen.

in vba:
code:
1
2
3
4
5
6
7
Dim Db as DAO.Database
Dim Rs as DAO.Recordset
Set Db=CurrentDb()
Dim QSL as string
SQL= ".............. je sql statement....... "

Set Rs = Db.OpenRecordset(SQL, dbOpenDynaset)  'populeer recordset


dan kan je de SQL statement wijzigen wanneer en hoe je wilt!

zolang je ernaar maar weel de rs populeerd (laatste regel set rs=.....)

waarden uit je recordset halen doe je met me.bla.value= rs!veld etc.

[ Voor 20% gewijzigd door Verwijderd op 26-02-2003 21:29 ]


  • Choller
  • Registratie: Juli 2001
  • Laatst online: 22-05-2024
O.K. dat heeft me idd heel erg goed geholpen. Toch ben ik er nog niet uit.

Mijn code is
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim dbs As Database, qdf As QueryDef
    Dim strSQL As String

    ' Verwijzing naar huidige database als resultaat geven.
    Set dbs = CurrentDb
    ' QueryDefs-collectie vernieuwen.
    dbs.QueryDefs.Refresh
    ' Query qry Test updaten, indien aanwezig.
    For Each qdf In dbs.QueryDefs
        If qdf.Name = "qry Test" Then
            qdf.SQL = "SELECT * From Doelgroep WHERE Doelgroep='Zakelijk'"
            MsgBox "ja"
        End If
    Next qdf
    
    DoCmd.OpenReport "rptDGroep", acViewPreview


Maar hij opent nu wel de hele report, ik krijg alle doelgroepen te zien ipv de juiste doelgroep.
Voor de duidelijkheid. Ik heb wel gewoon een query in de tabellenvenster die blijkbaar niet aangepast word.

  • Masch
  • Registratie: Augustus 2002
  • Laatst online: 11:54
DEL Modus

Je had gelijk... Ik had iets te snel gelezen...

[ Voor 87% gewijzigd door Masch op 27-02-2003 11:49 ]

(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!


  • Choller
  • Registratie: Juli 2001
  • Laatst online: 22-05-2024
Masch, de formulier heeft toch niks mee te maken nu ? Het gaat puur om het aanpassen van een Query in VBA !

De recordsource is de query. Deze query wil ik in VBA aanpassen. Formulier heeft nog weinig mee te maken omdat ik op een formulier een knop drukt waardoor de bovenstaande actie uitgevoerd wordt (ik krijg dan info van de formulier waardoor ik in de code mijn sql statement opnieuw kan opbouwen, wat moet gebeuren is dat de QUERY aangepast word.

Theorie is duidelijk, voor de meesten hier ook. Het MOET helaas in VBA, door duidelijke redenen......

  • Choller
  • Registratie: Juli 2001
  • Laatst online: 22-05-2024
Ik heb het !

Ik heb als recordsource een niet bestaand recordsource opgegeven. In dit geval bleh

Daarna met
code:
1
2
3
    Set qd = dbs.CreateQueryDef("bleh")
    qd.SQL = "SELECT * From Doelgroep WHERE Doelgroep='Zakelijk'"
    Set rst = qd.OpenRecordset(dbOpenSnapshot)


en hij deed het !

7 uur op zoek hiernaar....eindelijk :)
Pagina: 1