Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

VBA/ACCESS97: wert aus recordset als String weiterverarbeiten

Empfohlene Antworten

Veröffentlicht

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

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

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?

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

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.

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.