ultragleise Geschrieben 15. Mai 2003 Teilen Geschrieben 15. Mai 2003 ü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... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Reinhold Geschrieben 15. Mai 2003 Teilen Geschrieben 15. Mai 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ultragleise Geschrieben 16. Mai 2003 Autor Teilen Geschrieben 16. Mai 2003 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Reinhold Geschrieben 16. Mai 2003 Teilen Geschrieben 16. Mai 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
EvilNick Geschrieben 16. Mai 2003 Teilen Geschrieben 16. Mai 2003 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ultragleise Geschrieben 16. Mai 2003 Autor Teilen Geschrieben 16. Mai 2003 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.