# VBScript + SQL



## mIschKo (28. August 2007)

Hallo ist es möglich eine select abfrage zu machen und das Ergebnis in eine Variable zu speichern! 
Und diese dann in einer neuen select abfrage als bedingung einzubringen

Es ist nur eine spalte eines datensatzes die von der select abfrage abgefragt wird.

Danke schon mal!


----------



## odCaplan (3. September 2007)

Hallo,

Möglich ist es in alle Fälle. Ich habe ein ausführliches Beispiel zusammengebastelt. Ich hoffe, es hilft dir weiter. Viel Spaß.



Dim strErgebnis	As String
Dim intErgebnis	As Integer
Dim Source      As String
Dim ADORec1     As New ADODB.Recordset
Dim ADORec2     As New ADODB.Recordset
Dim ADORec3     As New ADODB.Recordset

Dim cnnConnect As New ADODB.Connection
' (Die Verbindung mit der SQL-Datenbank muß man schon deklarieren - Syntax hängt
' davon ab, welche DB-Art (Access, Informix, MySQL, usw.) und welche Verbindungsart
' (DAO, ADO, ADODB, usw.) gewünscht ist - Ich gehe davon aus, du weißt wie es geht)



' SQL-Abfrage vorbereiten
Source = ""
Source = Source & "SELECT IDnummer, Name FROM MeineErsteTabelle "
Source = Source & "WHERE [irgendwelche Kondition] "
Source = Source & "AND   [irgendwelche andere Kondition]"
Debug.Print Source

' Daten aus Tabelle Nr. 1 lesen
With ADORec1
	' Öffnen als "Read only"
	.Open Source, cnnConnect
	If Not .EOF Then
		strErgebnis = !Name
		intErgebnis = !IDnummer
	End If
	.Close
End With
Set ADORec1 = Nothing



' SQL-Abfrage vorbereiten
Source = ""
Source = Source & "SELECT Kuerzel, Standort, Emailadresse FROM MeineZweiteTabelle "
Source = Source & "WHERE MitarbeiterName = '" & strErgebnis & "'"
Debug.Print Source


' Daten aus Tabelle Nr. 2 lesen
With ADORec2 
' (Hier verwende ich ein zweites ADODB.Recordset. muß aber nicht unbedingt sein, weil ADORec1 'sauber' (.Close) geschlossen
' wurde - man könnte ADORec1 wieder verwenden - Es ist nur ein Beispiel)
	' Öffnen als "Read only"
	.Open Source, cnnConnect
	If Not .EOF Then
		' Daten lesen
		debug.print !Kuerzel
                debug.print !Standort
		debug.print !Emailadresse
	End If
	.Close
End With
Set ADORec2 = Nothing



' SQL-Abfrage vorbereiten
Source = "SELECT *  FROM MeineZweiteTabelle "
Debug.Print Source

' neue Daten in Tabelle Nr. 2 schreiben
With ADORec3 
' (Hier verwende ich ein drittes ADODB.Recordset. muß aber nicht unbedingt sein, weil ADORec1/ADORec2 'sauber' (.Close) geschlossen
' wurden - man könnte ADORec1 wieder verwenden - Es ist nur ein Beispiel)
	' Öffnen als "Read & Write"
	.Open Source, cnnVerfahren, , adLockOptimistic
		' einen neuen Datensatz hinzufügen
		.AddNew
                    !MitarbeiterName = strErgebnis
                    !Kuerzel = "AB"
                    !Standort = "Meinestadt"
                    !Emailadresse = "aaaaaa.bbbbb@webadresse.de"
                .Update
	.Close
End With
Set ADORec3 = Nothing


----------

