karlchristian
Goto Top

ACCESS 2010 DLookup auf eine Temp Tabelle machen.

Hallo,

ich möchte eine DLookup auf eine Temp Tabelle machen.
leider bekomme ich hier immer den Fehler das er die Tabelle nicht findet.

Habe ich hier den Fehler bei erstellen der Temp Tabelle bereits gemacht, oder warum findet er die Quelle nicht

folgendes habe ich Probiert

Dim quelle As DAO.QueryDef
spezial = "SELECT Temp_Variablen.BTNR, [TEMP ISBN].[Spezielles Customizing zb besondere Geschäftsfälle], [TEMP ISBN].[Sonstiges zb Sonderabwicklungen] " & _  
          "FROM Temp_Variablen INNER JOIN [TEMP ISBN] ON Temp_Variablen.BTNR = [TEMP ISBN].nummer " & _  
          "WHERE temp_variablen.ID='" & [varuser] & "';"  
Set quelle = CurrentDb().CreateQueryDef("", spezial)  
CurrentDb().QueryDefs.Refresh

If DLookup("[Spezielles Customizing zb besondere Geschäftsfälle]", quelle) <> 0 Then  
Me!Achtung_1.Visible = True
Me!Spezielles_Customizing.Visible = True
ElseIf DLookup("[Sonstiges zb Sonderabwicklungen]", quelle) <> 0 Then  
Me!Achtung_1.Visible = True
Me!Spezielles_Customizing.Visible = True
Else

Me!Achtung_1.Visible = False
Me!Spezielles_Customizing.Visible = False

Vielleicht kann mir hier jemand helfen.
Danke, Grüße aus München

Content-ID: 251141

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

Ausgedruckt am: 26.11.2024 um 11:11 Uhr

SlainteMhath
SlainteMhath 07.10.2014 um 08:56:46 Uhr
Goto Top
Moin,

wenn ich mich richtig erinnere nimmt Dlookup doch einen Tabellen-NAMEN als Parameter und nicht ein Table-(bzw. QueryDef-)OBJEKT - wundert mich ja das der Code nicht direkt mit einem Fehler aussteigt.

Evtl. könntest du dir das RecordSet zu dem QueryDef holen und das durchackern (wenn nicht allzu viele Records kommen) oder eben 2 QueryDefs mit den entsprechenden Where-Klauseln bauen

lg,
Slainte
karlchristian
karlchristian 07.10.2014 um 09:09:15 Uhr
Goto Top
Hallo Slainte,

daher hatte ich ja vorher versucht die "quelle" als temp Tabelle zu erzeugen
damit dann DLookup darauf zugreifen kann.

Meine frage ist halt, habe ich hier bei Erstellung der Temp Tabelle schon einen Fehler gemacht?...
oder warum kann er hier nicht darauf zurück greifen?
SlainteMhath
SlainteMhath 07.10.2014 um 09:32:30 Uhr
Goto Top
Die Temp.Tabelle existiert nur als QueryDef-Objekt und nicht als (benannte) Tabelle (bzw. Abfrage) in der Datenbank. Du kannst also nur über das QueryDef Objekt auf sie zugreifen. Wenn überhaupt, dann kannst du einen Dlookup so machen:

DLookup("[Sonstiges zb Sonderabwicklungen]", quelle.name)  

Mehr sinn macht's aber eigentlich das Recordset zu holen und dann die Felder abzufragen:
Set rst = quelle.OpenRecordSet(dbOpenSnapshot)
rst.movefirst
if rst("[Sonstiges zb Sonderabwicklungen]") <>0 then  
....
elseIf rst("....")  
...
end if
rst.close
114757
114757 07.10.2014 um 13:04:28 Uhr
Goto Top
Hi,
warum baust du die DLOOKUP Abfrage nicht gleich mit in die SQL Query mit ein ??
So ist das doch doppelt gemoppelt ...

Gruß jodel32
karlchristian
karlchristian 10.10.2014 um 22:11:02 Uhr
Goto Top
Hallo, danke an alle,

habs dann mit einen kleinen Änderung und Hilfe von Slainte hinbekommen.