Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Ich möchte eine Sql abfrage erstellen die folgendes ergabniss liefert:

[Firma] - [Telefon]

Firma1 - 01254752469; 1684168181; 18164648641; 18188183

Firma2 - 1354848;4848484;483463; 434348438

Die tabellen in MS Access sehen dazu wie folgt aus:

[Firma]

Firma_id

Firma_name

Firma_strasse

[Ansprechpartner]

Ansprechpartner_id

Ansprechpartner_name

Ansprechpartner_telefon

Zu jeder Firma gehören mehrere Ansprechpartner, wie sieht eine SQl abfrage aus welche alle telefonnummer zu einer Firma in einem Feld anzeigt?

MfG

Michael Klaus

Geschrieben
Originally posted by MichaK

[Firma]

Firma_id

Firma_name

Firma_strasse

[Ansprechpartner]

Ansprechpartner_id

Ansprechpartner_name

Ansprechpartner_telefon

Zu jeder Firma gehören mehrere Ansprechpartner, wie sieht eine SQl abfrage aus welche alle telefonnummer zu einer Firma in einem Feld anzeigt?

MfG

Michael Klaus

Wie kannst Du denn herauslesen welche Ansprechpartner zu welcher Firma gehören ? Welche Beziehung besteht zwischen den Tabellen ?

Geschrieben

hab da wohl was vergessen

[Firma]

Firma_id

Firma_name

Firma_strasse

[Ansprechpartner]

Ansprechpartner_id

Firma_id

Ansprechpartner_name

Ansprechpartner_telefon

MfG

Michael Klaus

Geschrieben

Als Ergebniss erhalte ich alle telefonnummern untereinander aufgelistet.

Als Ergebniss sollten aber alle Telefonnummern die zu einer ID gehören in einem Feld stehen.

eine Idee???

MfG

Michael Klaus

Geschrieben
Originally posted by MichaK

Als Ergebniss sollten aber alle Telefonnummern die zu einer ID gehören in einem Feld stehen.

Das dürfte über SQL kaum möglich sein, ist vielleicht auch nicht immer sinnvoll.

Es muß dann folglich eine Funktion geschrieben werden, die alle Datensätze der SQL - Abfrage für die entsprechende Firma abläuft und die Telefonnummern hintereinander zu einem String zusammenfügt. Dieses Feld kann dann nur als reine Informationsquelle dienen, Änderungen sind dort nur schwer zu implementieren.

Geschrieben
Originally posted by MichaK

in einem Feld stehen.

Ich sollte vielleicht mal richtig lesen. :rolleyes:

Vergiss also meinen vorherigen Beitrag. ;)

Das geht imho nur mit der verarbeitenden Programmiersprache.

Gruß Jaraz

Geschrieben

DAS DABEI ENTSTEHENDE FELD SOLL AUCH NUR ZUR INFO DIEHNEN; ICH WILL DARIN KEINE ÄNDERUNGEN MACHEN.

HAT NOCH JEMAND NE IDEE WIE DIESE AUFGABE ZU RELISIEREN IST?

MFG

MICHAEL KLAUS

Geschrieben

[OT]Schrei mich nicht an!

Ich bin sensibel und kann dabei nicht denken!:rolleyes: [/OT]

Die Vorgehensweise ist oben beschrieben. Anders wird es nicht gehen.

Falls du dazu Hilfe brauchst, irgendwann später, [OT]wenn du nicht wieder brüllst[/OT].;)

Geschrieben

die GROßBUCHSTABEN beziehen sich auf "Alles-Kleinschreiber"

ich würde dich niemals anschreien

und zum Schluß:

Ja bitte bitte ich brauche dazu hilfe

MfG

Michael Klaus

Geschrieben

@MichaK:

"Alles-Kleinschreiber" ist ein Benutzerstatus wie jeder andere. Diese sind von der Postingzahl in den fachlichen Foren abhaengig. Siehe Board-FAQ: Artikel 1 und Board-FAQ: Artikel 2.

In Foren wird das Schreiben in Grossbuchstaben als Schreien empfunden, egal an wen es gerichtet ist.

Zum Problem:

Das Problem laesst sich nicht mit einer SQL-Abfrage loesen.

Fuer dieses Problem musst Du eine Programmiersprache Deiner Wahl nutzen und das erhaltene Ergebnis der Abfrage weiterverarbeiten.

Die Vorgehensweise hat Der Kleine bereits vorgestellt.

Geschrieben

Hier mal nen Beispiel getestet und Funktioniert unter Access97 beim Klicken auf den Button "Befehl84" :



Private Sub Befehl84_Click()

Dim db As Database

Dim rs_fa As Recordset

Dim kt_fa As String

Dim rs_ap As Recordset

Dim kt_ap As String

Dim tel_nummer As String

Dim ausgabe As String



Set db = CurrentDb()

    ausgabe = ""

    kt_fa = "SELECT firma_id, firma_name from firma"

    Set rs_fa = db.OpenRecordset(kt_fa)

    rs_fa.MoveFirst

    While Not rs_fa.EOF

        kt_ap = "SELECT firma.firma_name, ansprechpartner.ansprechpartner_telefon"

        kt_ap = kt_ap + " FROM ansprechpartner INNER JOIN firma 

        kt_ap = kt_ap + " ON ansprechpartner.firma_id = firma.firma_id"

        kt_ap = kt_ap + " Where ansprechpartner.firma_id =" & rs_fa("firma_id") & ";"

        Set rs_ap = db.OpenRecordset(kt_ap)

        rs_ap.MoveFirst

        tel_nummer = ""

        While Not rs_ap.EOF

            tel_nummer = tel_nummer & rs_ap("ansprechpartner_telefon") & " "

            rs_ap.MoveNext

        Wend

        ausgabe = ausgabe & rs_fa("firma_name") & " : " & tel_nummer & Chr$(13)

    rs_fa.MoveNext

    Wend

    MsgBox (ausgabe)

End Sub
PS : Danke @Hades für deine moralische Unterstützung! Edit : Sauber ist es erst, wenn du alles Selbsterstellte auch wieder zerstörst:


    rs_ap.close

    rs_fa.close

    db.close


End Sub

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