Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: onkelcracker am Mai 24, 2010, 19:38:18

Titel: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: onkelcracker am Mai 24, 2010, 19:38:18
Ich habe eine Datenbank für Mobiltelefone gebastelt.
Diese dient der Erfassung der angemeldeten Simkarten und ausgegebenen Telefone. Soweit klappt auch alles sehr gut.
Ich möchte nun wie folgt eine Kleinigkeit meiner DB verbessern:

Damit eine Simkarte für eine Rufnummer angemeldet werden kann, muss der richtige HLR-Typ ermittelt werden.

Es gibt insgesammt 4 verschiedene HLR-Typen -> HLR1, HLR3, HLR4 und HLR5.
Ich habe für jeden HLR-Typ eine Tabelle angelegt wo jeweils die zugeordneten Zahlen eingetragen sind und diese mit dem Feld "Rufnummer" per 1:n in der Haupttabelle verknüpft.

Beispiel:
Rufnummer = 06648535850 -> Der HLR-Typ ergibt sich nun aus der 5. und 6. Stelle dieser Zahlenkombination, also 85, dieser Zahl ist der Typ HLR1 zugeordnet.
85 steht also in der Tabelle "HLR1".

Im Hauptformular habe ich ein Feld "HLR-Typ".
Damit ich nicht jedes mal händisch in meinen Tabellen nachsehen muss, welcher HLR-Typ einer Rufnummer zugeordnet werden muss, hätte ich jetzt gerne eine Abfrage oder VBA-Code, welcher einfach die 5. und 6. Stelle der Rufnummer erfasst, dann in allen 4 HLR-Tabellen nachsieht und den richtigen Typ dann automatisch im Formular im Feld HLR-Typ in der Form "HLR1" oder auch einfach nur "1" einträgt.
Ist so etwas machbar?

Ich bin leider noch Anfänger und befasse mich erst seit kurzem mit dem mächtigen Access-Programm.
Vielen Dank schon im Voraus für Eure Hilfe!
LG onkelcracker Rolling Eyes
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: MzKlMu am Mai 24, 2010, 20:01:19
Hallo,
ZitatIch habe für jeden HLR-Typ eine Tabelle angelegt
Das gehört in eine Tabelle mit einem Feld für den Typ und keine 4 Tabellen.

HLRZahl....HLRTYP
....85..........1
....??...........2
usw.

4 Tabellen sind grundsätzlich falsch.

ZitatIch habe für jeden HLR-Typ eine Tabelle angelegt wo jeweils die zugeordneten Zahlen eingetragen sind und diese mit dem Feld "Rufnummer" per 1:n in der Haupttabelle verknüpft.
Das versteh ich nicht, die HLR Nummer ist 2 stellig, die Telefonnummer 11 stellig, wie willst Du da eine Beziehung herstellen?

Wenn Du mir noch die anderen Zahle für den HLR Typ verrätst, mache ich Dir mal ein Beispiel.


PS:
Grosspostings (gleichzeitig auch in anderen Foren fragen) sind unerwünscht.
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: onkelcracker am Mai 24, 2010, 20:16:56
Hallo vielen Dank für deine Hilfe, ich habe einen Screenshot meiner DB angehängt damit du das mit den HL-Typen besser verstehen kannst.
Ich wüsste nicht wie ich das in einer Tabelle hinkriegen könnte. Schau dir bitte den Screenshot im Anhang mal an...
LG, onkelcracker

PS: Hab grade gesehen das ich die HLR-Tabellen mit der ID der Haupttabelle per 1:n verbunden habe, hoffe das stimmt so?
     Was meinst du bitte mit Großpostings? Ich wüsste nicht wie ich mein Problem kürzer beschreiben könnte...  ???


[Anhang gelöscht durch Administrator]
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: database am Mai 24, 2010, 20:38:47
Hallo,

MzKlMu meint C R O S S P O S T I N G S - (kurz Crosspost, auch Multiposting) bezeichnet - das gleichzeitige Versenden eines Beitrags an mehrere Webforen!
CROSS steht in dem FAll nicht für knusprig sondern für die kreuzweise Fragerei :)

Zitat...sind unerwünscht
...steht übrigens in den Forumsregeln von Access-o-Mania

Greets
Peter
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: onkelcracker am Mai 24, 2010, 20:42:11
Achso, tschuldige ich lösche meinen Beitrag sofort im anderen Forum.
Hab jetzt alle HLR-Typen wie empfohlen in eine Tabelle gepackt.  ;)

Siehe bitte Dateianhang, sieht jetzt schon besser aus hoffentlich...

[Anhang gelöscht durch Administrator]
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: MzKlMu am Mai 24, 2010, 20:47:44
Hallo,
die HLR gehören in eine Tabelle. Du willst doch eine Beziehung zwischen der HLR Nummer und der 5 und 6. Ziffer der Telefonnummer.
Schaue mal in das angehängte Beispiel.
Die HLR Nummer aus der telefonnummer wird in einer Abfrage ermittelt.
Auch die HLR Tabelle ist als eine Tabelle aufgebaut.



[Anhang gelöscht durch Administrator]
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: onkelcracker am Mai 24, 2010, 20:49:48
Hi, danke für Eure Bemühungen!
Ich hab über deinem Posting noch was ergänzt. Die HLR-Typen stehen jetzt in einer Tabelle -siehe Screenshot.
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: MzKlMu am Mai 24, 2010, 22:26:23
Hallo,
Du kannst über die Rufnummer und die HLRID keine Beziehung herstellen, das ist völlig ausgeschlossen.
Siehe mein Beispiel.
Ich habe das Beispiel noch geändert/erweitert. Außerdem hatte ich falsche Testrufnummern erfunden. Oben ist ein neues Beispiel.
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: onkelcracker am Mai 25, 2010, 17:43:38
Hallo MzKlMu, vielen Dank für dein Beispiel -ich habe mir das angeshen.

Also die 5. und die 6. Stelle der Rufnummer kannst du ja mit dem Query herausfiltern.
Jetzt müsste wenn z.B. Das Ergebnis 85 ist eine 1 ausgegeben werden, da der HLR-Typ für
85 laut vordefinierter Tabelle 1 sein muss.

Hier nochmal alle HLR-Typen wie sie in der Tabelle HLR definiert sind und im Formular im Feld "HLR-Typ" ausgegeben werden sollten:
HLR1 = 10, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 61, 62, 81, 82, 83, 84, 85, 95, 96
HLR3 = 39, 40,41, 42, 43, 44, 45, 46, 47, 48, 49, 64, 65, 92, 97
HLR4 = 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 63, 91, 94
HLR5 = 12, 13, 14, 15, 16, 17, 18, 31, 33, 34, 35, 36, 37, 38, 75, 76, 78, 79, 86, 87, 89, 90, 93, 98, 99

Beispiele: Bei Eingabe der Rufnummer 06646581439 soll im Feld "HLR-Typ" die 3 ausgegeben werden.
                Bei Eingabe der Rufnummer 06643348832 soll im Feld "HLR-Typ" die 5 ausgegeben werden.
                 Bei Eingabe der Rufnummer 06645823691 soll im Feld "HLR-Typ" die 4 ausgegeben werden.

Die HLR-Typen sind fix für die 5. und 6. Stelle jeder Rufnummer in der Tabelle vorgegeben, ich weiss nur nicht wie ich Access dazu bewegen kann in der Tabelle nachzuschauen und den HLR-Wert der Tabelle HLR auszugeben.

Die HLR-Tabelle ist wie folgt aufgebaut: HLRID  |  HLRZahl  |  HLRTyp  -und da sind die jeweiligen Werte eingetragen.
Die Rufnummer wird über ein Formularfeld "Rufnummer" in der Tabelle "Allgemein" eingetragen.
Neben dem Feld "Rufnummer" ist das Feld "HLR-Typ" welcher je nach Rufnummer 1, 3, 4 oder 5 ausgeben soll.

Irgendwie bist du ja schon knapp an der Lösung meines Problems glaube ich... 
LG, onkelcracker
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: MzKlMu am Mai 25, 2010, 17:53:32
Hallo,
ZitatIrgendwie bist du ja schon knapp an der Lösung meines Problems glaube ich...  
Hast Du das mal probiert, das geht doch bereits alles wie gewünscht.
Diese Abfrage:
SELECT qryHLR.*, tblHLRTypen.HLRID, tblHLRTypen.HLRTYP
FROM tblHLRTypen
INNER JOIN (qryHLR INNER JOIN tblHLR ON qryHLR.HLR = tblHLR.HLRNR) ON tblHLRTypen.HLRID = tblHLR.HLRTYPID_F;

liefert das gewünschte Ergebnis.
Du musst nur die Tabelle um die Einträge erweitern. Da war ich dann zu faul dazu.
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: onkelcracker am Mai 25, 2010, 18:52:04
"Du musst nur die Tabelle um die Einträge erweitern."

Ich bekomme die Meldung "Die Abfrage in diesem Ausdruck hat eine fehlerhafte Syntax "  ???

Hmmm, danke für die Antwort -wo muss ich was denn eintragen?
Sorry dass ich mich so dumm anstelle, aber ich hab noch nicht viel in Access
gemacht. Kannst du mir vielleicht näher beschreiben?
Steh leider komplett aufm Schlauch im Moment...
Danke im Voraus, Gruß
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: MzKlMu am Mai 25, 2010, 19:28:41
Hallo,
wie genau hast Du Dir die Eingabe im Formular gedacht?
Dient diese Zahl (1,3,4,5) der reinen Information oder wird mit diesem Wert noch was gemacht?
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: onkelcracker am Mai 25, 2010, 19:43:28
Diese Zahl dient rein nur zur Information,
damit ich weiss welcher HLR-Typ zur Anmeldung der jeweiligen Rufnummer
entnommen werden muss.
Möchtest du dir meine DB vielleicht mal ansehen, damit du den kompletten Aufbau nachvollziehen kannst?
Das ist eigentlich erst meine erste Arbeit in Access...
LG, onkelcracker

Also ich möchte nur wenn ich im Formular die Rufnummer eintippe daneben dann der dazugehörige HLR-Typ angezeigt wird.
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: MzKlMu am Mai 25, 2010, 19:46:13
Hallo,
ja, lade das Teil mal hier hoch.
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: onkelcracker am Mai 25, 2010, 20:04:44
hmmm, die DB ist leider zu groß, ich kann hier max 200kB hochladen
und die DB hat 780 KB.
Kann ich dir das vielleicht per Mail oder anders schicken?
LG
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: MzKlMu am Mai 25, 2010, 20:15:59
Hallo,
ZitatKann ich dir das vielleicht per Mail oder anders schicken?
Nein, das möchte ich nicht.
Hast Du die DB schon mal mit dem Access Dienstprogramm komprimiert/repariert?
Und dann erst zippen.
Die DB sollte nur das Wesentliche enthalten und nur einige Beispieldatensätze.
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: onkelcracker am Mai 26, 2010, 16:50:47
Hallo,
habs gezippt und einige Daten rausgelöscht.
Jetzt hab ichs hochgeladen, siehe Anhang.
Hoffentlich kannst du mir weiterhelfen.  ;)
Danke schon im Voraus!
LG onkelcracker
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: MzKlMu am Mai 26, 2010, 17:35:58
Hallo,
die Beziehung zwischen der Rufnummer und der HLRID ist völlig unbrauchbar, das macht doch keinen Sinn, das muss Dir doch klar sein, wenn Du die beiden Zahlen siehst. Die Beziehung habe ich einfach gelöscht.
Ich habe Dir jetzt eine etwas einfachere Lösung gemacht, mit DLookup().

DB siehe Anhang.

[Anhang gelöscht durch Administrator]
Titel: Re: Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)
Beitrag von: onkelcracker am Mai 26, 2010, 17:45:46
WOW, du bist echt ein Weltmeister -vielen vielen Dank!  :D
Ich zermartere mir schon seit Tagen den Kopf wie ich das hinbekommen könnte
und du löst das ruck zuck in ein paar Minuten.
Ich bin noch blutiger Access-Anfänger und mach gerade meine ersten Erfahrungen,
also entschuldige bitte nochmal meine Unwissenheit.
Klappt jetzt jedenfalls SUPER !!
LG, onkelcracker

PS: Könntest du den Anhang aus deinem Posting eventuell bitte wieder löschen?