mysql -> excel selectie maken (where klantnr=)

Status
Niet open voor verdere reacties.

maxventure

Nieuwe gebruiker
Lid geworden
6 mei 2007
Berichten
3
Vanuit Excel wil ik middels een macro data uit een mysql database binnenhalen.
Onderstaande macro gebruik ik hiervoor.

Als extra wil ik nu deze macro de klantgevens van klantnr x uit de database laten filteren en in excel plaatsen.

Klantnr x is een variabel getal en staat in bijvoorbeeld cel A1

Dus als men in cel A1 het bijvoorbeeld het klantnummer 4 intypt, dat middels onderstaande macro de klantgevens van klantnummer 4 worden opgehaald uit de database en in excel worden geïmporteerd.
Met deze klantgevens kan dan een offerte gemaakt worden.

In onderstaande macro staat de code "WHERE (aanmelden_0.klantnr=4)" vermoedelijk zal er in plaats van klantnr=4 een verwijzing naar cel A1 moeten staan. Echter dit krijg ik niet werkend.

Indien u tijd en zin heeft, hoop ik graag dat u mij kunt helpen.

Met vriendelijke groet en alvast mijn hartelijke dank




Sub Macro1()
'
' Macro1 Macro
' De macro is opgenomen op 6-5-2007 door Maxventure.
'
' Sneltoets: CTRL+s
'
Workbooks.Add
With ActiveSheet.QueryTables.Add (Connection:= _
"ODBC;DATABASE=;DSN=;OPTION=0;PWD=;PORT=0;SERVER=.nl;UID=" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT aanmelden_0.adres, aanmelden_0.bouwjaar, aanmelden_0.category, aanmelden_0.datum, aanmelden_0.dekking, aanmelden_0.emailadres, aanmelden_0.fax, aanmelden_0.geboortedatum, aanmelden_0.inboedel, " _
, _
"aanmelden_0.klantnr, aanmelden_0.merk, aanmelden_0.naam, aanmelden_0.nieuwprijscaravan, aanmelden_0.nieuwprijstent, aanmelden_0.nieuwsbrief, aanmelden_0.opmerking, aanmelden_0.postcode, aanmelden_0.RE" _
, _
"MOTE_HOST, aanmelden_0.remoteadr, aanmelden_0.telefoon, aanmelden_0.type, aanmelden_0.voorletters, aanmelden_0.woonplaats" & Chr(13) & "" & Chr(10) & "FROM datatrade.aanmelden aanmelden_0" & Chr(13) & "" & Chr(10) & "WHERE (aanmelden_0.klantnr=4)" _
)
.Name = "Query van datatrade"
.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:=False
End With
End Sub
 
Dat zou zoiets moeten worden als:

"WHERE (aanmelden_0.klantnr=" & Sheets(1).Range("A1").text & ")"

Je WHERE statement is een string (staat tussen dubbele aanhalingstekens). Wanneer je daar een variabele (of celverwijzing) wilt gebruiken, zul je strings aan elkaar moeten knopen middels het & teken.
 
hij doet het niet meer

Nu heb ik de macro in een ander excel bestand toegepast en werkt het niet meer.

als ik op foutopsporen klik wordt deze regel geel geacentueerd

.Refresh BackgroundQuery:=False

enig idee wat ik fout doe?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan