Externe Daten Parameter für where-Klausel

22/11/2008 - 19:48 von HST | Report spam
Hallo zusammen,

ein Arbeitsblatt soll mit Daten aus einer Acces Datenbank gefüllt werden.
Über Abfrage bearbeiten làsst sich im Befehlstext die Anweisung "select *
from Tabelle1 where TeilauftNr = 1000" eingeben und liefert das erwartete
Ergebnis.Soweit alles ok. Aber, ich würde das Kriterium "1000" gerne aus
einer Zelle im Arbeitsblatt auslesen und an die where-Klausel als Parameter
übergeben. Habe bisher keine Lösungsmöglichkeit gefunden. Wer hat eine Idee?

Gruß

HST
 

Lesen sie die antworten

#1 stefan onken
24/11/2008 - 16:36 | Warnen spam
On 22 Nov., 19:48, "HST" wrote:
Hallo zusammen,

ein Arbeitsblatt soll mit Daten aus einer Acces Datenbank gefüllt werden.
Über Abfrage bearbeiten làsst sich im Befehlstext die Anweisung "select *
from Tabelle1 where TeilauftNr = 1000" eingeben und liefert das erwartete
Ergebnis.Soweit alles ok. Aber, ich würde das Kriterium "1000" gerne aus
einer Zelle im Arbeitsblatt auslesen und an die where-Klausel als Parameter
übergeben. Habe bisher keine Lösungsmöglichkeit gefunden. Wer hat eine Idee?

Gruß

HST



hallo HST,
mE musst du die Abfrage dann selbst programmieren.
Ein Bsp: wechsle in den VBA-Editor (Alt+F11)
gehe dort auf Einfügen/Modul und kopiere diesen Code ins große
Codefenster

Sub AccessTabelleEinlesen()
'Extras/Verweise auf
'Microsoft ActiveX Data Objects
Dim cnnConn As ADODB.Connection
Dim rstRecordset As ADODB.Recordset
Set cnnConn = New ADODB.Connection
With cnnConn
.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0"
.Open "d:\db1.mdb"
End With
Set rstRecordset = New ADODB.Recordset
Set rst = cnnConn.Execute _
("Select * from tabelle1 where a > " & Range("A1") & ";")
ActiveSheet.Range("A2").CopyFromRecordset rst
End Sub

passe den Pfad zu deiner DB an (hier im Bsp d:\db1.mdb)
àndere das a in der select-Anweisung auf den Namen deiner Spalte, die
die Bedingung erfüllen soll
setze unter Extras/Verweise einen Verweis auf Microsoft ActiveX Data
Objects
beenden den Editor (X oben rechts)
schreibe eine Zahl in A1 und starte das Makro über Extras/Makro/Makros

für das Makro kann man dann eine Schaltflàche auf der Tabelle anlegen
oder es automatisch starten lassen, wenn sich A1 àndert.

Gruß
stefan

Ähnliche fragen