Re: tabellen erstellen -> tabelle nicht da

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance

From: Peter Doering (nospam_at_doering.org)
Date: 06/18/04


Date: Fri, 18 Jun 2004 12:02:52 +0200

Hallo Henry,

On Fri, 18 Jun 2004 16:04:20 +0700, Henry Habermacher [MVP Access] wrote:
> Peter Doering wrote in news:2jfobtF1162llU1@uni-berlin.de:
>
>>> Wenn Du mit Database.Execute arbeitest und anschliessend das
>>> Recordset auf der gleichen Database Instanz öffnest, müsste hingegen
>>> das Tabledef Objekt (rsp. die Tabelle) vorhanden sein, weil sonst
>>> die Operation innerhalb der Transaktion noch abgeschlossen ist.
>>
>> Das wiederum deckt sich /nicht/ mit meinen Erfahrungen. Immer dann,
>> wenn eine Instanz von CurrentDB gebildet wird, gibt's den
>> (eingebauten) Refresh. Bleibst du innerhalb der gleichen, musst du
>> den Refresh selbst nachschicken. Und DBEngine(0)(0) ist eben wegen
>> des fehlenden Refreshs um so viel schneller.
>
> Ich schreibe nicht CurrentDB.Execute, sondern Database.Execute und meine
> damit die Database Instanz, die er anschliessend für das Recordset
> benutzt.

Ich meinte schon das gleiche, also eine /neue/ Instanz von CurrentDB ...

> IMO ist DBEngine(0)(0) vorallem deshalb schneller, weil es nur einen
> Pointer auf die bereits geöffnete Database Instanz 0 des Workspaces 0
> zurückliefert, die immer geöffnet ist, sobald Access eine Datenbank
> geöffnet hat. Nebst dem Refresh, der evt. gemacht wird, gibt es noch
> einige andere Dinge, die da gemacht werden müssen, wie immer, wenn man
> ein Objekt instanziiert.

Genau, den Loewenanteil des Zeitverlustes gibt's aber beim Refresh. Das
kannst du auch dadurch nachstellen, indem du einen Containers.Refresh und
instanziieren einer /neuen/ CurrentDB vergleichst.

> DBEngine(0).(0) sollte gemäss OH (ich weiss, es gibt Gurus, die das
> Gegenteil behaupten und beweisen) seti A2000 nicht mehr benutzt werden.

Ich benutze grundsaetzlich nur noch das Property CurrentDbC ;-)

Gruss - Peter

-- 
Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com


Relevant Pages

  • Re: tabellen erstellen -> tabelle nicht da
    ... >> Nach dem Anlegen der neuen Tabelle muss ein Refresh auf die Container ... der bei CurrentDB automatisch gemacht wird. ... > innerhalb der Transaktion noch abgeschlossen ist. ... eine Instanz von CurrentDB gebildet wird, gibt's den Refresh. ...
    (microsoft.public.de.access)
  • Re: Question from Access 2007 VBA by Hennig et al
    ... If Then Set dbC = CurrentDb() ... Dim Dbs As DAO.Database ... Set Dbs = CurrentDb ... forgetting to use Refresh and relying on CurrentDb ...
    (microsoft.public.access.modulesdaovba)
  • Re: Setting field properties in code
    ... Try using CurrentDb() in its place. ... > you will need to create a Database object or else the reference ... But if you're using DBEngine, all you have to do is refresh the ...
    (comp.databases.ms-access)
  • Re: Adding Records by Code
    ... but: this is overkill: ... The CurrentDb call automatically refreshes /all/ collections. ... You'd only need to refresh the Tables collection if, for example, you ...
    (microsoft.public.access.formscoding)
  • Re: Create one function for all DAO Recordset connections
    ... David W. Fenton wrote: ... than CurrentDB() doesn't refresh the ... but IT DOESN"T MATTER because you have to call it ...
    (microsoft.public.access.modulesdaovba)