• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

MSDAORA en Wachtwoord

Status
Niet open voor verdere reacties.

Atara7

Gebruiker
Lid geworden
13 okt 2008
Berichten
34
Goedendag,

Ik hoop dat iemand mij hiermee kan helpen.
Ik heb via excel verbinding gemaakt met een Oracle database,
dit werkt perfect met het volgende:

Private Sub CommandButton1_Click()
With ActiveSheet.QueryTables.Add(Connection:="OLEDB;Provider=MSDAORA.1;Password=***;User ID=****;Data Source=*****", _ Destination:=Range("A1"))
...............
End Sub


Nu zou ik graag het Password en de User ID uit een excel cel willen halen.
Het idee is dus:
Password=Range("C1").Value;User ID=Range("C2").Value;

Maar dit werkt dus niet, ik heb het volgende ook al geprobeert;
Password=Range('C1').Value;User ID=Range('C2').Value;
Password=Range(C1).Value;User ID=Range(C2).Value;
Met hetzelfde resultaat:
Excel/Oracle vraagt om een wachtwoord.

Iemand enig idee?
Bedankt en groetjes, Aat :)|
 
Laatst bewerkt:
Atara7, Ik heb hier persoonlijk geen ervaring mee, maar ik zie wel dat er een textstring wordt gebruikt. Je kan een textstring en een variabele combineren dmv een ampersant (&).
Ik gok dat de syntax dan zoiets wordt...
Code:
With ActiveSheet.QueryTables.Add(Connection:="OLEDB;Provider=MSDAORA.1;Password="&Range('C1').Value&";Us...

Groet, Leo

[edit] da's jammer... sinds de 'nieuwe' code tags kan je geen gekleurde veranderingen tonen....
 
Laatst bewerkt:
Ga ik morgen gelijk proberen!
Bedankt en als het is gelukt, of niet, laat ik het morgen weten :)

Groetjes, Aat :)
 
...Ik zie nu pas dat ik het bereik in m'n voorbeeld tussen enkele quotes heb overgenomen van jouw voorbeeld... De syntax van een bereik is Range("A1"). Dus met dubbele quotes! Let daar ff op, anders gaat het nog mis, maar dan door een 'sulligheidje'. ;)

Groet, Leo
 
Even een aanvulling op Ginger's reactie, Het stukje voorbeeld code was m.i. niet erg duidelijk.

Het groende deel van deze deze code staat tussen aanhalings tekens (rood), dit is dus tekst.

Private Sub CommandButton1_Click()
With ActiveSheet.QueryTables.Add(Connection:="OLEDB;Provider=MSDAORA.1;Password=***;User ID=****;Data Source=*****", Destination:=Range("A1"))

Als je VBA code in een tekst zet werkt dat natuurlijk niet, de VBA code wordt dan ook gewoon gezien als tekst.
Je moet de tekst string dan opbouwen met &-jes. Je stapt als het ware even uit de tekst, doet een stukje code en gaat dan weer verder met tekst.

Private Sub CommandButton1_Click()
With ActiveSheet.QueryTables.Add(Connection:="OLEDB;Provider=MSDAORA.1;Password=" & Range("C1").Value & ";User ID=" & Range("C2").Value & ";Data Source=*****", Destination:=Range("A1"))

N.b. je moet de **** bij Data Source nog wel even aanpassen.
 
Laatst bewerkt:
Ja hoor het is helemaal gelukt!
Bedankt Ginger Leo en Withaar :thumb:
De ampersant doet het geweldig :D

Groetjes, Aat
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan