Danke, dass du deine Posts gegenseitig verlinkt hast.
Zu deinem Problem:
Wenn ich dich richtig verstanden habe, hast du in einer Spalte A lauter Kundenummern stehen.
z.B.
|
A |
1 |
68705335 |
2 |
25510015 |
3 |
92566660 |
4 |
85398822 |
5 |
20468602 |
und willst jene in dein SQL einbauen.
1 | SELECT kdname FROM datenbank WHERE kdnummer IN (...)
|
Du bist gar nicht mehr so weit davon entfernt. ;)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | Option Explicit
Sub Test()
Dim sql As String
Dim vntKNr As Variant
With Worksheets( "Tabelle1" )
Set vntKNr = .Range( "A2" , .Cells(.Rows.Count, "A" ). End (xlUp))
If vntKNr.Row < 2 Then
MsgBox "Keine Daten vorhanden." , vbExclamation
Exit Sub
End If
End With
vntKNr = vntKNr.Value()
vntKNr = WorksheetFunction.Transpose(vntKNr)
vntKNr = Join(vntKNr, ", " )
sql = "SELECT kdname FROM datenbank WHERE kdnummer IN (" & vntKNr & ")"
Debug.Print "SQL-Query := " "" ; sql; "" ""
End Sub
|
... die Variable sql hat dann, dem obigen Beispiel treu bleibend, folgenden Inhalt :
1 | SELECT kdname FROM datenbank WHERE kdnummer IN (68705335, 25510015, 92566660, 85398822, 20468602)
|
Das ist dann deine SQL-Abfrage, die du CommandText übergibst.
1 2 3 4 5 6 7 | With ActiveWorkbook.Connections(odc_pfad).ODBCConnection
.CommandText = Array(sql)
End With
|
|