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-Key: 251141

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

Printed on: April 26, 2024 at 08:04 o'clock

Member: SlainteMhath
SlainteMhath Oct 07, 2014 at 06:56:46 (UTC)
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
Member: karlchristian
karlchristian Oct 07, 2014 at 07:09:15 (UTC)
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?
Member: SlainteMhath
SlainteMhath Oct 07, 2014 at 07:32:30 (UTC)
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
Mitglied: 114757
114757 Oct 07, 2014 at 11:04:28 (UTC)
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
Member: karlchristian
karlchristian Oct 10, 2014 at 20:11:02 (UTC)
Goto Top
Hallo, danke an alle,

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