Access VBA - Typen unverträglich - Spalte in Feld

Also ich brauche für Access VB(A) einen Code der meine Spalte mit den Mitarbeitern durch Komma getrennt in ein Feld (anstatt immer in eine neue Zeile) einträgt. Es ist eine Datenbank für Projekte. Das Problem ist, dass dann bei der Abfrage ein Projekt mehrmals angezeigt wird, jenachdem wie viele Bearbeiter es hat. Ich wollte durch eine Abfrage und dem Code die Spalte zusammentragen.
Durch Recherchearbeit und ein wenig Hilfe hab ich das hier gefunden und verändert:

Public Function fctMitarbeiterVerketten(lngProjektID As Integer) As String
Dim rsProjekt As DAO.Recordset

Set rsProjekt = „SELECT Bearbeiter FROM tblBearbeiter WHERE …“ & lngProjektID
Do Until rsProjekt.EOF
fctMitarbeiterVerketten = fctMitarbeiterVerketten & ", " & rsProjekt!Bearbeiter
Loop
End Function

Nur kommt beim debuggen immer der Fehler das die Typen unverträglich sind.
Ich bin momentan schon 2 Tage am verzweifeln und kann meine Arbeit nicht fortsetzen.
Ihr seit meine letzte Hoffnung!

BITTE Hilft mir :frowning:

Hilft dir das weiter:

Public Function fctMitarbeiterVerketten(lngProjektID As Integer) As String

Dim rsProjekt As DAO.Recordset
Dim DB As DAO.Database
Set DB = CurrentDb()
Set rsProjekt = DB.OpenRecordset(„SELECT Bearbeiter FROM tblBearbeiter WHERE Projekt=“ & lngProjektID)
Do Until rsProjekt.EOF
fctMitarbeiterVerketten = fctMitarbeiterVerketten & ", " & rsProjekt!Bearbeiter
rsProjekt.MoveNext
Loop
End Function

Versuche es mal.

Viel Spaß
Keijei

lieber Access Entwickler,
tut mir leid. Hier kann ich nicht weiter helfen.
Vielleicht gibt es hier Hilfe:
http://www.smarttools.de/newsletter/access-weekly.ne…
#######################################################

Hallo,

leider konnte ich mir das ganze nur fluechtig anschauen, da ich dringend weg muss…

aber die Zeile:

Set rsProjekt = "SELECT Bearbeiter FROM tblBearbeiter …

sollte heissen:

Set rsProjekt = CurrentDb.OpenRecordset("SELECT Bearbeiter FROM tblBearbeiter …)

Ich denke das dies der Fehler ist, zuweisung String zu recordset geht nicht

Tschau
Peter

Also ich würde es mal so versuchen:

Dim strHelp as string
Set rsProjekt = „SELECT Bearbeiter FROM tblBearbeiter WHERE …“ & lngProjektID
Do Until rsProjekt.EOF
strHelp = strHelp & ", " & rsProjekt!Bearbeiter
Loop
mitarbeiterverketten = strHelp


Ausserdem kannst Du noch
CSTR(rsProjekt!Bearbeiter)
ausprobieren.

Viel Glück!

Hallo,

Also ich brauche für Access VB(A) einen Code der meine Spalte
mit den Mitarbeitern durch Komma getrennt in ein Feld (anstatt
immer in eine neue Zeile) einträgt. Es ist eine Datenbank für
Projekte. Das Problem ist, dass dann bei der Abfrage ein
Projekt mehrmals angezeigt wird, jenachdem wie viele
Bearbeiter es hat. Ich wollte durch eine Abfrage und dem Code
die Spalte zusammentragen.
Durch Recherchearbeit und ein wenig Hilfe hab ich das hier
gefunden und verändert:

So:

Public Function fctMitarbeiterVerketten(lngProjektID As Long ) As String
Dim rsProjekt As DAO.Recordset

Set rsProjekt = Currentdb.Openrecordset(„SELECT Bearbeiter FROM tblBearbeiter WHERE ProjektID_FK =“ & lngProjektID ,dbOpenSnapshot )
Do Until rsProjekt.EOF
fctMitarbeiterVerketten = fctMitarbeiterVerketten & ", " & rsProjekt!Bearbeiter
Loop
rsProjekt.Close
Set rsProjekt = Nothing

End Function

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo Hans-Peter,

probiers mal mit einem + anstatt dem & und konvertiere die IngProjektID mit einem CAST oder einem CONVERT in einen String.

CAST(IngProjektID AS VARCHAR)
oder
CONVERT(VARCHAR, IngProjektID)

schönen Gruß
Stefan

Danke

Hey,
danke für die hilfen!
Es läuft bei mir jetzt nur steh ich vor einem Problem und zwar das in der Zeile: „SELECT Bearbeiter FROM tblBearbeiter WHERE fiProjekt=“ , dass fiProjekt was benötigt wird nicht in der Tabelle tblBearbeiter ist sondern in der Tabelle tblBearbeiterVerweis.
Gibt es eine Möglichkeit das Feld nach WHERE auf ein Feld auf einer anderen Tabelle zu Verweisen?

Gruß Hans-Peter

Hey,
danke für die hilfen!
Es läuft bei mir jetzt nur steh ich vor einem Problem und zwar das in der Zeile: „SELECT Bearbeiter FROM tblBearbeiter WHERE fiProjekt=“ , dass fiProjekt was benötigt wird nicht in der Tabelle tblBearbeiter ist sondern in der Tabelle tblBearbeiterVerweis.
Gibt es eine Möglichkeit das Feld nach WHERE auf ein Feld auf einer anderen Tabelle zu Verweisen?

Gruß Hans-Peter

Hey,
danke für die hilfen!
Es läuft bei mir jetzt nur steh ich vor einem Problem und zwar das in der Zeile: „SELECT Bearbeiter FROM tblBearbeiter WHERE fiProjekt=“ , dass fiProjekt was benötigt wird nicht in der Tabelle tblBearbeiter ist sondern in der Tabelle tblBearbeiterVerweis.
Gibt es eine Möglichkeit das Feld nach WHERE auf ein Feld auf einer anderen Tabelle zu Verweisen?

Gruß Hans-Peter.

HAllo,

danke für die hilfen!
Es läuft bei mir jetzt nur steh ich vor einem Problem und zwar
das in der Zeile: „SELECT Bearbeiter FROM tblBearbeiter WHERE
fiProjekt=“ , dass fiProjekt was benötigt wird nicht in der
Tabelle tblBearbeiter ist sondern in der Tabelle
tblBearbeiterVerweis.

Ohne Kenntnis der Tabellenstruktur kann ich da nichts sagen.

Gibt es eine Möglichkeit das Feld nach WHERE auf ein Feld auf
einer anderen Tabelle zu Verweisen?

nein, Where kann sich nur auf ein Feld beziehen, das in einer der in der Abfrage vorkommenden Tabellen steht.

Man kann natürlich in einer Abfrage mehrere Tabellen benutzen und die über die entspr. Schlüsselfelder miteinander verknüpfen (left join, inner join, right join). Dazu dann eine Where-Condition einbauen, die sich auf das gewünschte Feld in einer der beteilgten Tabellen auswirkt.

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo Hans-Peter,

dann musst du die beiden Tabellen miteinander verknüpfen/verjoinen. So kannst du dir die Inhalte der Tabelle tblBearbeiterVerweis hinzuziehen.

schönen Gruß
Stefan

Hallo,

komme eben aus dem Kurzurlaub, deswegen meine Antwort mit Verspätung.

Die Zeile "Set rsProjekt = „SELECT …“ lautet richtig so:

Set rsProjekt = currentdb().openrecordset(„SELECT …“)

Viele Grüße

Jochen

DANKE!
Läuft jetzt alles Perfekt!
Gruß Hans-Peter

DANKE!
Läuft jetzt alles Perfekt!
Gruß Hans-Peter

DANKE!
Läuft jetzt alles Perfekt!
Gruß Hans-Peter.

DANKE!
Läuft jetzt alles Perfekt!
Gruß Hans-Peter…

DANKE!
Läuft jetzt alles Perfekt!
Gruß Hans-Peter

sorry

kann ich nicht helfen