[indirekt]an Herrn Bernd Held - wichtig!
USD
seit wochen beschäftigt mich die frage, wie ich am besten abfragen in excel aus access machen kann.
Dank Herrn Bernd Held und seines Compendiums kursieren ja viele Codes, die sich auf dieses Musterbeispiel beziehen.
eines davon wurde auch hier
https://www.herber.de/forum/archiv/172to176/t174631.htm
dargestellt.
Ich bin ebenso ein Benutzer dieses Codes, habe mir den nach meinem wenigen Kenntnisstand angepasst und er funktioniert auch einigermassen.
Einigermassen, wenn man ein paar Regeln befolgt.
So z.B. kann man nur datensätze KOMPLETT einlesen, wenn jedes Feld in der Datenbank bzgl. Abfragekriterium befüllt ist.
Ist dem nicht so, gibt er lediglich die werte zurück, die bis zum ersten leeren Feld gefunden werden.
OK - kein Problem - ich habe halt alle relevanten Felder in der DB aneinandergereiht bzw. die leeren mit einem "-" gefüllt.
Danach habe ich ein wenig herumprobiert, weil ich einfach nicht verstanden habe, wo der Fehler sein könnte.
Jetzt habe ich den CODE wie folgt geändert
Set Dia = UserForm1
s = Dia.TextBox1.Value
t = "Nachname = '" & s & "'"
DBS.Open "Kundenverzeichnis", ADOC, adOpenKeyset, adLockOptimistic
On Error GoTo Fehler
DBS.Find t
With Dia
.TextBox7.Value = DBS!Nachname
.TextBox2.Value = DBS!Vorname
.TextBox3.Value = DBS!Strasse
.TextBox4.Value = DBS!PLZ
.TextBox5.Value = DBS!Ort
.TextBox6.Value = DBS!Anrede_Anschrift
.TextBox8.Value = DBS!Kundennr
End With
DBS.Close
ADOC.Close
Exit Sub
...und siehe da, er ignoriert auf einmal die Leerfelder und gibt mir alle Werte zurück.
SO - nun zu meiner eigentlichen Frage und das aus sicht eines blutigen Laien.
Ist das mit den zwei identischen Variablen so gewollt oder hat sich da ein Schreibfehler eingeschlichen?
Ich denke ersteres trifft zu(MUSS!), da die "halbe welt" mit diesem code arbeitet.
Das zweite schliesse ich mal aus....
Das aber ist nicht der einzigste Grund, weshalb ich frage.
Accesabfragen aus Excel heraus benutzen wohl die wenigsten, ein Grund, warum dieses so schlecht dokumentiert ist.
Access Profies kennen sich in Excel nicht wirklich aus, anders herum das gleiche Trauerspiel.
Evtl. gelingt es mir aber jetzt und hier eine Lösung für mein mittlerweile grosses Problem zu finden.
Ich würde sehr gern per ADO aus Excel heraus, gebunden an zwei abfragekriterien(TEXTBOXEN), den Datensatz finden, der nur diese Kriterien erfüllt.
Wird dieser in der db gefunden, sollte dieser(4 weitere Textboxen)nach excel in die UF zurückgegeben werden.
mit einem wert geht das, wie ich das mit dem zweiten mache, weiss ich leider nicht.
mit "select und where" habe ich bislang keinen erfolg.
danke fürs lesen
gruss
walther