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-Key: 80677

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

Printed on: April 19, 2024 at 19:04 o'clock

Member: misterdemeanor
misterdemeanor Feb 14, 2008 at 15:37:33 (UTC)
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-
Member: joe
joe Feb 19, 2008 at 13:47:32 (UTC)
Goto Top
danke erstmal,
werde es morgen mal testen.
Member: misterdemeanor
misterdemeanor Feb 25, 2008 at 09:56:44 (UTC)
Goto Top
Grüß Dich joe,

hat sich Dein Problem bereits gelöst? Dann mal einen nettgemeinten Hinweis auf How can I mark a post as solved?

Ansonsten sag worans noch hapert face-wink

BG, Felix -misterdemeanor-