Juli 13, 2020, 22:25:13

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Spezielle Abfrage aus 4 Tabellen -H I L F E E (Access 2007)

Begonnen von onkelcracker, Mai 24, 2010, 19:38:18

⏪ vorheriges - nächstes ⏩

onkelcracker

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

MzKlMu

Mai 24, 2010, 20:01:19 #1 Letzte Bearbeitung: Mai 24, 2010, 20:03:20 von MzKlMu
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.
Gruß
Klaus

onkelcracker

Mai 24, 2010, 20:16:56 #2 Letzte Bearbeitung: Mai 24, 2010, 20:23:01 von onkelcracker
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]

database

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

onkelcracker

Mai 24, 2010, 20:42:11 #4 Letzte Bearbeitung: Mai 24, 2010, 20:47:54 von onkelcracker
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]

MzKlMu

Mai 24, 2010, 20:47:44 #5 Letzte Bearbeitung: Mai 24, 2010, 22:50:50 von MzKlMu
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]
Gruß
Klaus

onkelcracker

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.

MzKlMu

Mai 24, 2010, 22:26:23 #7 Letzte Bearbeitung: Mai 24, 2010, 22:49:57 von MzKlMu
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.
Gruß
Klaus

onkelcracker

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

MzKlMu

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.
Gruß
Klaus

onkelcracker

Mai 25, 2010, 18:52:04 #10 Letzte Bearbeitung: Mai 25, 2010, 19:28:00 von onkelcracker
"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ß

MzKlMu

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?
Gruß
Klaus

onkelcracker

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.

MzKlMu

Gruß
Klaus

onkelcracker

Mai 25, 2010, 20:04:44 #14 Letzte Bearbeitung: Mai 25, 2010, 21:54:21 von onkelcracker
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