Zum Inhalt springen

VBA/ACCESS97: wert aus recordset als String weiterverarbeiten


ultragleise

Empfohlene Beiträge

ü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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...