Gegevens van een recordset invullen in specifieke excel cellen

Status
Niet open voor verdere reacties.

SvenSijbring

Gebruiker
Lid geworden
10 jan 2011
Berichten
15
Bekijk bijlage Voorbeeld_Macro.zip

Beste SQL forum,

Allereerst wil ik zeggen dat ik compleet nieuw ben w.b.t. SQL en dat ik mijn vraag op het forum heb gezocht maar ik niets kon vinden.

Dan maar een vraag plaatsen.

Wat ik wil is gegevens van een recordset invullen in specifieke excel cellen van een bestaand document.

(zie bijlage, kopiëren naar C:\)
- Ik heb een Word document met een macro.
- Deze macro laat een Userform zien waar een bedrijf en een aanvrager gekozen kan worden (deze gegevens worden uit een apart excel bestand gehaald). Verder genereert de macro een offertenummer.
- Als er dan op "Invoegen" gedrukt wordt dan wil ik dat bepaalde gegevens worden ingevuld in een al bestaand exceldocument in specifieke cellen.

Alles gaat goed, maar bij het invullen van het Projectnummer loopt het vast.
En wat ik ook niet snap, is dat ik als doel bijvoorbeeld cel D4 heb, maar in de SQL code D3 moet ingeven.

Verder heb ik gekozen voor een ADO connection omdat het excelbestand dan niet geopend hoeft te worden.

Waarschijnlijk is de oplossing zo simpel dat ik het bijna niet kan geloven, maar voor nu kom ik er niet uit :(

Graag een duw in de goede richting.

Alvast mijn hartelijke dank,
Sven Sijbring.
 
Hoi Sven,

Ik denk dat ik weet wat er fout gaat.

Ik weet niet heel veel van JET.OLEDB verbindingen af, maar dit artikel zal je interesseren.

Ik denk dat de reden dat je projectnummer vastloopt, het datatype is, dat niet overeenkomt met het verwachte. Bij SQL is altijd één hele kolom van één datatype. Ik denk dat het datatype van je projectnummer niet overeenkomt met het verwachte, en dat daarom de insert mislukt.

In het bovenstaande artikel staat dat je de connectionstring moet uitbreiden met "IMEX=1" (intermixed datatype, oftewel geen vast datatype.) om dat probleem op te lossen.

Verder kan het D3 : D4 verhaal komen doordat standaard rekening wordt gehouden met een header. Ik gok dat de queryrange dan wellicht bij rij 2 begint, en als je in excel een selectie maakt bijvoorbeeld van "A2 : D4" en je tikt in het immediate window van de VBA editor van Excel "Selection.Range("D3").select" , dan wordt cel D4 geselecteerd. Dus daar zit wellicht de verklaring.

Ik hoop dat je hier verder mee komt.

Mark.
 
Laatst bewerkt:
Beste Mark,

Excuses voor mijn late reactie (vakantie).

Jouw artikel ziet er veelbelovend uit en ik zal je aanbevelingen ter harte nemen.
Ik laat weten hoe het afloopt.

Sven.
 
Bekijk bijlage Voorbeeld_Macro.zip

Met behulp van de suggesties van Mark heb ik het nu werkende. Alleen ik snap er niets van.
Ik heb alleen ;HDR=No moeten toevoegen om te zorgen dat nu ook het projectnummer verwerkt kan worden. Verder is het D3 : D4 verhaal nog steeds van kracht.

Het werkt, maar vraag me niet hoe of waarom.
Als iemand het weet dan hoor ik het graag.

Ik zet de vraag wel op opgelost.

Bedankt en tot de volgende keer,
Sven.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan