• 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.

MySQL update macro - VBA script

Status
Niet open voor verdere reacties.

wiegerklijnstra

Gebruiker
Lid geworden
12 feb 2013
Berichten
28
Beste mensen.

Wie kan mij helpen…. Ik zoek een macro c.q. VBA script, geen formulier of CSV bestand, om waardes in een MySQL tabel te updaten. Het kost mij waarschijnlijk eeuwen en een hoop frustraties terwijl hopelijk iemand hier al wat heeft.
Hier de gegevens; MySQL sever 5.1.39, ODBC 64 bit, Excel 2010, Servernaam LS-01
Gebruikersnaam; test
MySQL gegevens;
Password; test
Database ; test
Tabel ; art
Kolom 1; Art-ID
Kolom 24; Art-Besteld
Waardes in Excel C10 t/m C2000 (indien gevuld) dienen te worden opgeteld bij de waardes in ART-Besteld. Daar staat al een waarde of hij is 0. Referentie waarde in Excel staat in A10 t/m A2000. Dus als er in A10 210 (artikelcode) staat en in cel C10 8 en in Art-Besteld al 4 bij Art-ID 210 (artikel code) dan moet het 12 worden in Art-Besteld. Knopje drukken voor uitvoeren macro en voilà. Dat is alles, maar voor mij erg moeilijk. Wie kan mij helpen?

Bekijk bijlage update-mysql.xlsx
 
Snap niet echt wat je nu eigenlijk wilt, de excel bijlage blinkt ook niet in duidelijkheid uit. Graag wat meer gegevens, waar we wat mee kunnen.
 
Bekijk bijlage Excel-naar-MySQL.xlsm

Ik heb wat meer. Het stopt echter bij de Cn As ADODB.Connection. Ik begrijp niet helemaal hoe ik ADODB moet toepassen en/of installeren. Vindt alleen info hoe het werkt maar geen installatie instructies of zoiets. Ik heb een nieuwe excel toegevoegd. Kan iemand mij op weg helpen?
 
jouw database "test", wat is dat ? een excelfile, access ? moet daar geen extensie achter ?
 
Test is de naam van mijn database op mijn MySQL server welke draait op Linux Server 12.04 op I.P. adres 192.168.1.250. Dit draait weer op VMWare. Maar dat doet er eigenlijk niet toe. Zou niet weten waarom de naam van een database een extensie zou moeten hebben. Neem aan dat de code enigszins voor zich spreekt. Zou kunnen dat ik hier verkeerd zit met deze vraag, maar het is Excel gerelateerd.
 
Ben weer wat verder. Heb inmiddels correct de MDAC en ADO geinstalleerd en werkend.. Niet vergeten deze ook aan te zetten onder VBA; extra; verwijzingen. Kan alleen niet testen omdat ik ergens anders zit. Mocht het werken dan sluit ik de vraag.
 
Nog wat mosterd misschien:
- op http://connectionstrings.com/mysql vind je alle connectionstrings. Ik zou voor de oledb driver gaan, zo mogelijk;
- in je code zitten nog restjes van een recordset die je niet gebruikt;
- in je loopje open je nu steeds opnieuw een connectie zonder te sluiten. Mss gaat het goed maar het is iig niet "netjes".

Alternatieve aanpak:
- open de connectie en haal de gegevens naar een recordset
- in je loopje: filter de recordset voor elke waarde, pas die aan en update
- tot slot rs en cn sluiten
Zie http://msdn.microsoft.com/en-us/library/ms676691(v=vs.85).aspx
 
Hoi Frans, de code werkt nu uitstekend. Ik ben al zo blij dat het werkt. Ik heb nu twee scriptjes waarvan de ene de database update en de andere nieuwe info kan toevoegen. Ik zou niet weten hoe ik de connectie telkens weer sluit. Daar zou ik hulp bij kunnen gebruiken. Als je tijd hebt... Anders ben ik zo blij genoeg...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan