Discussion:
A03 konvertieren von Text in Zahl aus einer verknüpften Tabelle
(zu alt für eine Antwort)
Horst Streich
2011-02-18 19:12:05 UTC
Permalink
Kann mir jemand sagen ob ich das Text_formatierte Feld einer Tabelle
in eine Abfrage aufnehmen kann, um es in das Format Zahl zu
konvertieren um dann eine Beziehung herstellen zu können.
Hintergrund, beide Felder haben den gleichen Inhalt, das eine ist aber
als Text formatiert und das andere als Zahl, sie befinden sich in
verschidenen Datenbanken. Ändern geht nicht zu viele Beziehungen.
Gruß Horst
Karl Donaubauer
2011-02-18 19:44:19 UTC
Permalink
Post by Horst Streich
Kann mir jemand sagen ob ich das Text_formatierte Feld einer Tabelle
in eine Abfrage aufnehmen kann, um es in das Format Zahl zu
konvertieren um dann eine Beziehung herstellen zu können.
Hintergrund, beide Felder haben den gleichen Inhalt, das eine ist aber
als Text formatiert und das andere als Zahl, sie befinden sich in
verschidenen Datenbanken. Ändern geht nicht zu viele Beziehungen.
2 Varianten:

1.
Du erstellst eine Abfrage mit allen dich interessierenden Feldern der
einen Tabelle und wandelst dort in einer berechneten Spalte den
Text in eine Zahl um z.B. mit: clng(DeinTextFeld)
Wenn du nun die Abfrage speicherst, kannst du sie bzw. das berechnete
Feld in weiteren Abfragen zum Verknüpfen mit der zweiten Tabelle verwenden.

2.
Du verwendest beide Tabellen direkt in einer Abfrage und wandelst das
Text-Verknüpfungsfeld in der SQL-Ansicht der Abfrage um.
Also z.B. verwendest du dort wieder clng():

FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.Id = clng(Tabelle2.Id)

Vorteil: du brauchst keine vorgeschaltete Abfrage
Nachteil: Access kann die Abfrage nicht mehr in Entwurfsansicht öffnen
--
Servus
Karl
*********
Access-FAQ: http://www.donkarl.com
Horst Streich
2011-02-20 18:12:13 UTC
Permalink
Post by Karl Donaubauer
Post by Horst Streich
Kann mir jemand sagen ob ich das Text_formatierte Feld einer Tabelle
in eine Abfrage aufnehmen kann, um es in das Format Zahl zu
konvertieren um dann eine Beziehung herstellen zu können.
Hintergrund, beide Felder haben den gleichen Inhalt, das eine ist aber
als Text formatiert und das andere als Zahl, sie befinden sich in
verschidenen Datenbanken. Ändern geht nicht zu viele Beziehungen.
1.
Du erstellst eine Abfrage mit allen dich interessierenden Feldern der
einen Tabelle und wandelst dort in einer berechneten Spalte den
Text in eine Zahl um z.B. mit: clng(DeinTextFeld)
Wenn du nun die Abfrage speicherst, kannst du sie bzw. das berechnete
Feld in weiteren Abfragen zum Verknüpfen mit der zweiten Tabelle verwenden.
2.
Du verwendest beide Tabellen direkt in einer Abfrage und wandelst das
Text-Verknüpfungsfeld in der SQL-Ansicht der Abfrage um.
FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.Id = clng(Tabelle2.Id)
Vorteil: du brauchst keine vorgeschaltete Abfrage
Nachteil: Access kann die Abfrage nicht mehr in Entwurfsansicht öffnen
--
Servus
Karl
*********
Access-FAQ:http://www.donkarl.com
Danke Karl
funktioniert prima
Gruß Horst
Henry Habermacher
2011-02-24 06:57:24 UTC
Permalink
Post by Karl Donaubauer
1.
Du erstellst eine Abfrage mit allen dich interessierenden Feldern der
einen Tabelle und wandelst dort in einer berechneten Spalte den
Text in eine Zahl um z.B. mit: clng(DeinTextFeld)
Wenn du nun die Abfrage speicherst, kannst du sie bzw. das berechnete
Feld in weiteren Abfragen zum Verknüpfen mit der zweiten Tabelle verwenden.
2.
Du verwendest beide Tabellen direkt in einer Abfrage und wandelst das
Text-Verknüpfungsfeld in der SQL-Ansicht der Abfrage um.
FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.Id = clng(Tabelle2.Id)
Vorteil: du brauchst keine vorgeschaltete Abfrage
Nachteil: Access kann die Abfrage nicht mehr in Entwurfsansicht öffnen
2.
Du verwendest eine WHERE Bedingung anstelle einer Join Bedingung (was zu
Urzeiten von SQL üblich war, als JOIN noch nicht möglich war)

FROM Tabelle1, Tabelle2
WHERE Tabelle1.ID = CLng(Tabelle2.ID)

Vorteil: wie Variante 2, kann aber in der Entwurfsansicht geöffnet werden.
Nachteil: (nicht verifiziert) Evt. ein bisschen langsamer als Variante 2

Gruss
Henry

Loading...