Veröffentlicht 15. Mai 200322 j über VBA zissel ich ir einen wert aus einer tabelle: Set Test = db.OpenRecordset("SELECT tbl_Abteilungen.Abteilung...WHERE...) jetzt steht doch der selektierte wert in test, oder?! diesen möchte ich jetzt gerne als String weiterverarbeiten! um genau zu sein, will ich diesen wert in word exportieren...ungefähr so: .ActiveDocument.Bookmarks("r").Select .Selection.Text = Test ...das funktioniert aber nicht...ich denke mal, dass "Test" erst noch in string convertiert werden muß...bin aber nicht sicher. Also, hat jemand noch ne Ahnung? Danke vorab...
15. Mai 200322 j Original geschrieben von ultragleise Set Test = db.OpenRecordset("SELECT tbl_Abteilungen.Abteilung...WHERE...) jetzt steht doch der selektierte wert in test, oder?! Nein, in Test steht ein Zeiger auf den Recordset. Um den Inhalt einer Spalte der ersten (und möglicherweise einzigen) Zeile zu verwenden, mussst du ihn noch zuweisen, also DeineZielvariable = Test!Spaltenname hth Reinhold
16. Mai 200322 j leuchtet mir ein...es funktioniert aber nicht! Set Test = db.OpenRecordset("SELECT tbl_Abteilungen.AB_Name AS man FROM tbl_Abteilungen WHERE (((tbl_Abteilungen.ID)=[Forms]![frm_Auswertung_Abt]![iD_ABT]));") Abt = !man ...also an der abfrage kann das eigentlich nicht liegen...die funktioniert auf jeden fall als SQL-statement. hat noch jemand ne ahnung?
16. Mai 200322 j Original geschrieben von ultragleise Set Test = db.OpenRecordset("SELECT tbl_Abteilungen.AB_Name AS man FROM tbl_Abteilungen WHERE (((tbl_Abteilungen.ID)=[Forms]![frm_Auswertung_Abt]![iD_ABT]));") Probiers mal so: Set Test = db.OpenRecordset("SELECT tbl_Abteilungen.AB_Name AS man FROM tbl_Abteilungen WHERE (((tbl_Abteilungen.ID)=" & [Forms]![frm_Auswertung_Abt]![iD_ABT] & "));") Ich nehme an, sonst wird nicht der Wert des Formularfelds eingesetzt. Original geschrieben von ultragleise Abt = !man Das geht aber nur in einem With-Block, oder? hth Reinhold
16. Mai 200322 j mmm... kommt da nur ein Datensatz raus? Dann mach doch einfach Dim man As String Dim test As Recordset Set test = db.OpenRecordset(....) man = Trim(test.Fields(0)) So hast du in "man" den String stehen, der an Pos 0 des SQL SELECTs rauskommt. Da da ja nur einen Wert hat gibts auch nur 0. Wenn du gleich mehrere Datensätze erhält, mach doch einfach: Dim man As String Dim test As Recordset Set test = db.OpenRecordset(....) Do Until test.EOF man = Trim(rec.Fields(0)) Tu irgendwas mit man... rec.MoveNext Loop So würde ich das lösen, bzw. so mach ich das in allen meinen VBA Makros die auf ne DB zugreifen.
16. Mai 200322 j ok, alles klasse ideen, aber die lösung is ne andere! ok, dieses recordset kann keine abfrage ausführen, die mit werten aus einem formular arbeitet (wie das hier jetzt der fall wäre). also muß ich statt formularzeug einen parameter wählen. dann leg ich ein querydef an (dim qd as querydef) und weise dann damit dem parameter den wert aus dem formular zu: set qd = db.querydefs("Abfrage") qd.parameters("Parameter").value = Forms!Formular!Wert dann setzen: set Test = qd.openrecordset... Das wars. trotzdem danke.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.