Sql script opstellen vanuit excel

Status
Niet open voor verdere reacties.

giesen98

Nieuwe gebruiker
Lid geworden
11 feb 2010
Berichten
3
Hallo allemaal

Heeft iemand ervaring hoe ik vanuit een excelbestand een sql scipt kan opstellen? Ik heb een naw bestand met BSN (die als sleutel dient) en wil voor deze personen een sql script opstellen waarmee ik batchgewijs een proces voor desbetreffende personen kan opboeken in onze applicatie.

De processen dienen er voor dat er altijd een registratie valt na te kijken voor deze personen. De gegevens die in systeem vastgelegd dienen te worden zijn bijv procesnummer (wat automatisch wordt opgehoogd), startdatum, aanvraagdatum, besluitcode etc.

zie bijlage voor voorbeeld
 

Bijlagen

Uhm, is het niet handiger in dit geval access te gebruiken?
Zoals ik de bijlage snap is het de bedoeling om een mysql tabel uit te lezen aan de hand van bepaalde input.
Ofwel de focus van het excel bestand zou bestaan uit mysql queries uitvoeren, lijkt me dat access daar beter in is.
 
hallo Jonathan en anderen

Daar zit hem net de crux. Ik heb nog nooit met acces gewerkt en weet dat het ook vanuit excel kan door velden samen te voegen en als insert script naar sql tools te kopieren. Weet alleen dus niet hoe ik dit het beste kan doen en heb eigenlijk een voorbeld nodig om me op weg te helpen

groet
Ruud
 
Ik weet niet hoe bekend je bent met Excel, maar je kan gewoon VB Script uitvoeren in je Excel bestand.
Persoonlijk vind ik VB script matig en zou ik misschien eerder een export naar CSV of XML doen en deze uitlezen via een andere taal, zoals bijvoorbeeld PHP of Perl.
Maar dat is ook weer omslachtig.


Als je in je Excel bestand events toevoegt en direct vanuit je bestand een verbinding maakt naar je database, dan scheelt dat een hoop stappen.

Je kan bijvoorbeeld in Excel de volgende trigger aan je werkblad toevoegen:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 UpdateRow (Target.Row)
End Sub

Private Function UpdateRow(Row As Integer)
  'Hier kan je aan de hand van het rijnummer (Row)
  'van de net aangepaste cel een update uitvoeren
End Function

Je kan de velden van de rij ophalen door Range("A"&Row), Range("B"&Row), etc.. te gebruiken.

Je kan in dit script vervolgens ook een verbinding maken met een database:

Code:
oConn.Open "Driver={mySQL};" & _ 
           "Server=mysql.database.com;" & _
           "Port=3306;" & _
           "Option=131072;" & _
           "Stmt=;" & _
           "Database=mydb;" & _
           "Uid=myUsername;" & _
           "Pwd=myPassword"

Als het je lukt om een verbinding te maken zijn er volgens mij genoeg tutorials te vinden over VBScript en het updaten van rijen in een database.

Je zou dan bijvoorbeeld de volgende stappen kunnen doorlopen:

1. Als de BSN van de rij bestaat in de database voer uit: "UPDATE personen " & Range("B1") & " = " & Range("B"&Row) & " WHERE BSN = " & Range("A"&Row)

2. Als de BSN van de rij nog niet bestond in de database doe je een normale INSERT

Volgens mij zijn er trouwens Resultsets die je kan updaten, dan hoef je dus geen SQL statements te gebruiken, maar gewoon de resultset aanpassen en toepassen op de DB.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan