Thread View: pl.comp.bazy-danych.msaccess
3 messages
3 total messages
Started by minfo
Wed, 19 Apr 2017 15:01
Zastąpienie DLookUp - coś co przyspieszy/ optymalizacja formularza
Author: minfo
Date: Wed, 19 Apr 2017 15:01
Date: Wed, 19 Apr 2017 15:01
23 lines
2137 bytes
2137 bytes
Witam, Mam podlinkowaną sporą tabelę dbf z aplikacji zewnętrznej A2010 obsługuje jeszcze dbf-y ale chyba trochę spowolnił ... Zrobiłem formularz który ma 4 pola: 1. numer wysyłki - dane wpisuję w formularz z ręki 2. nr odbiorcy 3. nr adresata 4. adres wysyłki po wpisaniu numeru wysyłki w zdarzeniu "po aktualizacji" mam odświeżenie formularza zrobiłem jak umiałem na szybko być może trzeba optymalizować w polach 2-4 funkcja DLookUP która wstawia dane z podlinkowanej tabeli w warunku funkcji jest np. tak: pole 2. wyszukaj nr odbiorcy w tabeli wysyłki (dbf) gdzie numer wysyłki = Me.numer_wysyłki (pole 1 formu). Generalnie A2010 dość długo uzupełnia pola 2-4. Możecie pomóc w optymalizacji/ew. zastąpieniu DLookUP? Z góry dziękuję. MF
Re: Zastąpienie DLookUp - coś co przyspieszy/ optymalizacja formularza
Author: minfo
Date: Wed, 19 Apr 2017 15:10
Date: Wed, 19 Apr 2017 15:10
9 lines
1499 bytes
1499 bytes
..... > > Z góry dziękuję. > MF Aha, Chciałem jeszcze dodać że pola formu są niezwiązane. MF
Re: Zastąpienie DLookUp - coś co przyspieszy/ optymalizacja formularza
Author: Smyk
Date: Thu, 20 Apr 2017 07:19
Date: Thu, 20 Apr 2017 07:19
46 lines
2539 bytes
2539 bytes
minfo@onet.pl wrote at Mi 19.04.2017 17:01:
> po wpisaniu numeru wysyłki w zdarzeniu "po aktualizacji"
> mam odświeżenie formularza
> [...]
> w polach 2-4 funkcja DLookUP która wstawia dane z podlinkowanej tabeli
> w warunku funkcji jest np. tak: pole 2. wyszukaj nr odbiorcy w tabeli
> wysyłki (dbf) gdzie numer wysyłki = Me.numer_wysyłki (pole 1 formu).
>
> Generalnie A2010 dość długo uzupełnia pola 2-4.
>
> Możecie pomóc w optymalizacji/ew. zastąpieniu DLookUP?
Startujesz 3 razy DLookup() żeby pobrać wartość jednej kolumny tabeli.
Zastąp to jednym zapytaniem SQL, ktore zwróci wszystkie trzy kolumny jako
Recordset. Odświeżanie przyśpeszy trzykrotnie :)
Ze starym DAO byłoby jakoś tak ...
...
Dim db as DAO.Database
Dim r as DAO.Recordset
Dim sql as String
sql = " select kol2, kol3, kol4 from tabela_dbf " &
" where numer_wysylki = " & Me![numer_wysylki]
Set db = CurrentDB
Set r = db.OpenRecordset(sql, dbOpenSnapshot, dbForwardOnly)
if not r.EOF then
Me!pole2 = r!kol2
Me!pole3 = r!kol3
Me!pole4 = r!kol4
else
Me!pole2 = "Nic nie znaleziono"
Me!pole3 = Me!pole2
Me!pole4 = Me!pole2
end if
r.Close
Set r = Nothing
Set db = Nothing
..
Sprawdź składnie. Mój VBA trochę zardzewiał ...
Ciao, Smyk
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads