joe
Goto Top

mehrere Listen zu einer Datenbank zusammenfügen

Problem:
mehrere Listen mit jeweils
drei feldern: Name; beschreibung, Kennzeichen

Name und Beschreibung sind gleich; das kennzeichen unterscheidet sich jeweils
listenweise, d.h. innerhalb einer liste gibt es nur EIN kennzeichen.

Ziel:
eine einzige liste mit dem Aufbau:
Name, Beschreibung und "haken" bei kennzeichen eins, kennzeichen zwei.


Beispiel:
liste-01:
name: beschreibung Kennzeichen_1
müller Sachbearbeiter Brille
muster Pfoertner Brille

liste-02:
name: beschreibung Kennzeichen_2
müller Sachbearbeiter Auto
meier lieferant Auto


liste-03:
name: beschreibung Kennzeichen_2
schmidt Sachbearbeiter schluessel
meier lieferant schluessel


gewünschtes ergebnis:
liste-all:
name: beschreibung Brille Auto schluessel
müller Sachbearbeiter x X
muster Pfoertner x
meier lieferant x x
schmidt Sachbearbeiter x

hat jemand einen Vorschlag?

Content-ID: 80677

Url: https://administrator.de/contentid/80677

Ausgedruckt am: 16.11.2024 um 18:11 Uhr

misterdemeanor
misterdemeanor 14.02.2008 um 16:37:33 Uhr
Goto Top
Grüß Dich Joe,

da sträuben sich einem Access-Entwickler und jedem der etwas mit relationalen Datenbanken zu tuen hat die Haare *fg

Nichtsdestotrotz versuche ich Dir mal zu helfen. Wenn Deine Angaben originalgetreu sind sollte es reichen folgenden Code in ein Modul zu pasten und laufen zu lassen.

Ganz wichtig dabei ist das Du in der leeren Tabelle "liste-all" name und bezeichnung als gemeinsamen Primäschlüssel deklarierst-->Tabellenentwurfsansicht-->die beiden Zeilen name und beschreibung gleichzeitig markieren-->Mausrechtsklick-->Primärschlüssel.

Public Function JoinTables()
  Dim sql As String
  Dim i As Integer
    DoCmd.SetWarnings False
    For i = 1 To 3
      sql = "INSERT INTO [liste-all] ( name, beschreibung )" _  
        & " SELECT [liste-0" & i & "].name, [liste-0" & i & "].beschreibung" _  
        & " FROM [liste-0" & i & "];"  
      DoCmd.RunSQL sql
      Select Case i
        Case 1
          sql = "UPDATE [liste-01] INNER JOIN [liste-all] ON ([liste-01].beschreibung = [liste-all].beschreibung) AND ([liste-01].name = [liste-all].name) SET [liste-all].Brille = True;"  
        Case 2
          sql = "UPDATE [liste-02] INNER JOIN [liste-all] ON ([liste-02].beschreibung = [liste-all].beschreibung) AND ([liste-02].name = [liste-all].name) SET [liste-all].Auto = True;"  
        Case 3
          sql = "UPDATE [liste-03] INNER JOIN [liste-all] ON ([liste-03].beschreibung = [liste-all].beschreibung) AND ([liste-03].name = [liste-all].name) SET [liste-all].schluessel = True;"  
      End Select
      DoCmd.RunSQL sql
    Next i
    DoCmd.SetWarnings True
End Function

Hoffe es hilft.

BG, Felix -misterdemeanor-
joe
joe 19.02.2008 um 14:47:32 Uhr
Goto Top
danke erstmal,
werde es morgen mal testen.
misterdemeanor
misterdemeanor 25.02.2008 um 10:56:44 Uhr
Goto Top
Grüß Dich joe,

hat sich Dein Problem bereits gelöst? Dann mal einen nettgemeinten Hinweis auf Wie kann ich einen Beitrag als gelöst markieren?

Ansonsten sag worans noch hapert face-wink

BG, Felix -misterdemeanor-