PDA

Vollständige Version anzeigen : Per VBA wird Abfrage ausgeführt, wie Eingabefeld abfangen


SvK
20.01.2003, 12:53
Hallo,
ich importiere per VBA aus vielen Paradox-Tabellen Datensätze. Das passiert in dem ich per VBA eine Abfrage ausführe, nun ist das Problem bei manchen Tabellen sind die Spaltenüberschriften anders. Im Normalfall lautet die Spaltenbezeichnung Verfügbarkeit, leider ist sie bei manchen Verf³gbarkeit!
Beim ausführen der Abfrage kommt nun die Eingabemaske für die Spalte Verfügbarkeit, da diese in den besagten Tabellen ja nunmal nicht vorhanden ist.
Nun möchte ich gerne wenn Access feststellt das dieses Problem auftritt eine andere Abfrage ausführt in der ich die Spaltenbezeichnung geändert habe!

Was ich möchte ist also:

Abfrage wird ausgeführt, Abfrage findet die Spalte nicht ( Normalerweise kommt nun die MsgBox mit der Bitte um Eingabe des Wertes), andere Abfrage wird ausgeführt!

mfG

SvK

P.S.: Ich bin über jede Hilfe dankbar!

SvK
20.01.2003, 14:58
Hat niemand einen Tipp oder einen "Umweg" im Hinterköpchen?? Mir fällt leider keine Lösung ein, habe schon sämtliches versucht! Das Problem ist das ständig neue Tabellen dazu kommen, mit dem ü oder mit dem ³ !

mfG

SvK

strausto
20.01.2003, 15:26
Versuche es mal mit:

[CODE]

ON ERROR GOTO ERROR_ABFRAGE

...


ERROR_ABFRAGE:

....

SvK
21.01.2003, 08:05
Hallo, danke für die Antwort, leider habe ich das schon ausprobiert und es scheint bei meinem Problem kein Fehler aufzutreten. Access hält es für keinen Fehler, es erwartet einfach eine Eingabe vom User!
Ich habe nun aber eine neue Idee, ich versuche nun einfach bevor ich die Daten einlese von der gewissen Spalte die Bezeichnung herrauszubekommen, leider weiß ich nch nicht wie! Vielleicht weiß da ja jemand eine Lösung!

mfG

SvK

P.S.: Danke nochmals für alle die sich mit meinem Problem beschäftigen.

Aquarii
21.01.2003, 08:19
Hallo SvK,

wie du die Spaltenüberschriften auslesen kannst, steht hier:

http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=75512&highlight=spalten%FCberschrift

firstindi
21.01.2003, 08:25
Das sich der Spaltenname ändert, heisst nich das du die Abfrage nicht ausführen kannst, Die Spaltenüberschrift brauchst du nur für Spalten mit Kriterien.

Setze doch die gesamte Tabelle mit "*" auf die Abfrage, Spalten mit Kriterien ziehst du separat rein und machst diese unsichtbar

jadatcoder
21.01.2003, 08:28
Hallo,

------
'Das Problem ist das ständig neue Tabellen dazu kommen, mit dem ü oder mit dem ³ !'
------

wenn die Möglichkeit besteht, solltest Du auf die Festlegung der
Spaltennamen einwirken.
Ich könnte mir denken, daß das Problem mit ausgeschriebenen Umlauten
(Ü=ue etc.) leichter zu handeln ist.
Es sollte dann keine Probleme mit dem Zeichnsatz geben.

strausto
21.01.2003, 08:51
Hi!



Public Function SQLvar()


Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim fd As DAO.Field
Dim qr As DAO.QueryDef
Dim strFeld As String
Dim strSql As String

Set db = CurrentDb
Set rs = db.OpenRecordset("Tabelle2")

Set qr = db.QueryDefs("Abfrage1")

For Each fd In rs.Fields

If fd.Name = "feld1³" Or fd.Name = "feld1" Then
strFeld = fd.Name
End If
Next fd
Debug.Print strFeld
strSql = "select " + strFeld + " from " + rs.Name + ";" + ""
Debug.Print strSql
qr.SQL = strSql
rs.Close
Set rs = Nothing

End Function


Setzt voraus das Abfrage1 besteht und irgendeine SelectAnweisung beinhaltet (Achtung wird überschreiben!).

Der Variabel strFeld wir entweder fedl1³ oder feld1 zugewiesen, je nachdem die Tabelle das Feld fedl1³ oder feld1 aufweist.


So jetzt sollte es gehen!!

SvK
21.01.2003, 08:58
RIESEN Dank erstmal an alle, ich werde jetzt eure Vorschläge ausprobieren! Danke für soviel Interesse!

mfG

SvK

SvK
21.01.2003, 09:44
Hallo, vielen Dank für alle Tipps, ich habe mein Problem nun mit dem letzten Tipp realisiert, klappt super! ich Frage einfach ab ob eine Spalte "Verfügbarkeit" heißt, wenn dies so ist nehme ich die eine Abfrage, sonst die zweite! Ist vielleicht nicht perfekt, aber es funktioniert!!

Danke nochmals an alle! Dieses Forum hat mir nun schon zum Xten male geholfen! Danke an das Forum und besonders an EUCH, die Ihr immer wieder Leuten wie mir weiter helft!


mfG

SvK