PDA

Vollständige Version anzeigen : Tabelle auslesen über VBA


Baloo
07.10.2001, 16:41
Hallo,

wie kann ich denn in VBA Bezug nehmen auf eine Tabelle, genauer auf ein ganz bestimmtes Feld, z.B. Zeile 5, Feld Nr. 3 und diesen Wert dann auslesen ???? Ich brauche das um einem Bezeichnungsfeld in einem Formular bestimmte Werte zuzuweisen.

Zweitens wenn ich aus einem Formular ein Popup starte und in diesem Formular Werte berechne, wie kann ich diese Werte bzw. Variablen mit Werten in ein anderes Formular mit übernehmen ???
Vielen Dank im voraus.

uke
07.10.2001, 23:00
da gibt es ungefähr tausend Möglichkeiten...

z.B. mit ME (gemeint ist das aktuelle Formular) und deren Steuerelementen

oder mit Recordsets

oder mit Dlookup

Übernahme in ein anderes Formular; kommt darauf an, woraus der Wert übernommen werden soll; vmtl aus einem anderen noch offenen Formular!?
Werde Dir mal klar über die collection (das sind die Dinger die mit s aufhören), z.B. Forms, controls etc.
Zugriff geht dann über das Ausrufezeichen und den Punkt, je nachdem in welcher Hierarchie und was man machen will.

Uke

Baloo
08.10.2001, 17:39
OK, ich bin mir jetzt der Sache klar:

Ich hab eine Tabelle namens Tab1. Diese Tabelle enthält zwei Spalten namens Spalte1 und Spalte2. in diesen spalten sind verschiedene Werte enthalten.

Wie kann ich nun:
- Den Titel von Spalte1 und Spalte2 Abfragen
- Den Inhalt einer x-beliebigen Zelle einzeln abfragen (z.B. Spalte2, Zeile3)

Zum zweiten Teil: Was ist der Unterschied zwischen dem ! und dem . ??? Genauer wenni ch mich beziehe mit Me.Bezeichnung und mit Me!Bezeichnung ????

Fragen über Fragen......

uke
09.10.2001, 10:59
Hi Balloo,
also mal ganz von Anfang an: Du hast eine DB, deren Modell Du als programmierer kennst (davon gehe ich aus). Jetzt willst Du aus der Tabelle 1 einen Wert auslesen. Du willst natürlich nicht irgendeinen Wert auslesen, sondern einen ganz bestimmten. Um diesen Wert zu finden hast Du ganz bestimmte Kriterien, z.B. Suche mir die Frau, für die gilt: schlank, blond, intelligent etc. Der Name dieser Frau soll Dir dann zurückgegeben werden, wenn es ihn geben sollte.
Beispiel: gesuchter_Vorname = Dlookup("Vorname", "Tabelle1", "Haarfarbe = " & Kriterium1 & " IQ = " & Kriterium2). Dabei sind Vorname und Haarfarbe und IQ Felder aus der Tabelle1. Das ganz liesse sich natürlich auch bequem über Recordsets abfragen, aber das spare ich mir an der Stelle.
Du willst den Attribut-Namen wissen? Naja, ich gehe davon aus, daß Du den als Programmierer Deiner DB auch weißt. Du kannst aber über TableDefs auch Dir diese rausholen. Dazu mal ausführlich die Online-Hilfe von ACCESS lesen und sich über Collections uns Recordsets im klaren werden. Eigentlich sollte das aber nicht notwendig werden. Da scheint mir das pferd von hinten aufgezäumt zu werden....

. und ! : Über den Punkt werden die Eigenschaften und Methoden vom Objektbezeichner abgetrennt. Letzlich gilt das auch für das Ausrufezeichen, aber hier werden idR die eigenen Elemente benannt. Beispiel (was jetzt kommt, ist alles dasselbe):
Befehl3.Caption = "Beenden"
Me!Befehl2.Caption = "Beenden"
Me("Befehl3").Caption = "Beenden"
Me.Controls!Befehl3.Caption = "Beenden"
Me.Controls("Befehl3").Caption = "Beenden"
Me(0)...
Me.Controls(0)...

die letzten beiden Varianten verweisen auf allerdings sich änderbaren (!) Index, daher nicht empfehlenswert. Bei Collections wird, wenn darin irgendwann etwas selbst definiertes kommt, das Ausrufezeichen verwendet. Anders gesagt: Wenn Intellisense greift, der Punkt.

Punkt

Uke

Baloo
09.10.2001, 16:16
Hallo Uke,

danke mal soweit, aber wie ginge das mit Recordsets?????

Danke schonmal.