|  
                                             
	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. 
SELECT kdname FROM datenbank WHERE kdnummer IN (...) 
	Du bist gar nicht mehr so weit davon entfernt. ;) 
Option Explicit
Sub Test()
  
  Dim sql As String
  Dim vntKNr As Variant
  
  With Worksheets("Tabelle1") '<- Tabellenblatt in dem die Daten liegen
    'Bereich: A2 bis letzte Zeile mit Inhalt (in Spalte A, von unten nach oben suchen)
    Set vntKNr = .Range("A2", .Cells(.Rows.Count, "A").End(xlUp))
    'wenn wir unsere Startzeile/-zelle (hier A2) unterschreiten, dann gibt es keine Daten
    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 : 
SELECT kdname FROM datenbank WHERE kdnummer IN (68705335, 25510015, 92566660, 85398822, 20468602) 
	Das ist dann deine SQL-Abfrage, die du CommandText übergibst. 
    '...
    With ActiveWorkbook.Connections(odc_pfad).ODBCConnection
        '...
        .CommandText = Array(sql)
        '...
    End With
    '...
	  
     |