Tekst informacyjny o polityce Cookies Close   
    
 
         
• Strona główna
• 1. Linki
• 3. Kontakt: e-Mail
 
         
• 1. Baza danych
• 2. Tabele i kwerendy
• 3. Formularze
• 4. Raporty
• 5. Moduły i makra
• 6. Obsługa błędów
 
    

II.   VBA 

    
• 1. Okna Accessa
• 2. Okna Formularzy
• 3.Okna Dialogowe
• 4. Tekst
• 5. Liczby
• 6. Pliki
• 7. Inne
 
    

III.   API 

    
• 1. Ogólnie o API
• 2. Funkcje API
• 3. System
• 4. Praca z oknami
• 5. Okna dialogowe
• 6. API - Inne
 
         
• 1. Bitmapy 24 Bit
• 2. GDI i HDC
• 3. Kody kreskowe
• 4. Formant Image
• 5. FreeImage.dll
 
    

V.   Inne 

    
• 1. Shell i MsDOS
• 2. Kontrolki
• 3. ६ԼҚ ਸ
• 4. Unikod

 
Odwiedzin:


Logo - BraZby

Logo AccessFAQ• I.2. Access - Tabele i kwerendy [1] •

2.1 Jak policzyć rekordy w tabeli ?
2.2 Jak sprawdzić, czy istnieje tabela ?
2.3 Jak sprawdzić, czy istnieje pole w tabeli ?
2.4 Jak dodać pole do tabeli bazowej lub tabeli połączonej ?
2.5 Jak zmienić nazwę pola w tabeli bazowej lub tabeli połączonej ?
2.6 Jak wywołując funkcję DLookup przekazać kwerendzie parametr ?
2.7 Dlaczego kwerenda wywołuje => Błąd wykonania '3061' Za mało parametrów. Oczekiwano np. 2 ?
2.8 Czy można odzyskać usuniętą przez pomyłkę tabelę ?
2.9 Jak obliczyć średnią liczb z 2 lub więcej pól tego samego rekordu ?
2.10 Jak ukryć tabelę, by nie była widoczna w oknie bazy (nawet po ustawieniu w menu Narzędzia/Opcje/Widok/Pokaż obiekty ukryte(systemowe) = True ?
2.11 Jak pobrać współrzędne kursora myszy nad oknem tabeli (kwerendy) poza obszarem danych ?
2.12 Jak sprawdzić czy zdarzenie MouseUp kwerendy, zainicjowane zdarzeniem MouseDown nad nagłówkiem kolumny lub selektorem rekordów, zaszło nad obszarem danych ?
2.13 Jak sprawdzić, czy tabela lub kwerenda otwarta jest w widoku Arkusz danych (DataSheet), a formularz lub raport nie jest w widoku Projekt (DesignView) ?


2.1 Jak policzyć rekordy w tabeli ?

grupa: pl.comp.bazy-danych.msaccess
wątek: Liczba rekordów w tabeli
przedstawił: Krzysztof Pozorek



<cyt>
...... (nie jest to wynik testów, tylko moja opinia):

1. Select Count(*) FROM Tabela1 - dziala szybko, ale tylko w składni SQL.
2. CurrentDB.TableDefs("Tabela1").RecordCount - działa szybko,
    ale w kodzie VBA (a nie w SQL)
3. DCount("*","Tabela1") - działa najwolniej, ale wszędzie.

• Select Count(*) jest bardzo dobrze zoptymalizowana w Accessie.
• CurrentDB.TableDefs("Tabela1").RecordCount nie liczy rekordów,
   tylko odczytuje z wewnętrznego licznika
• DCount(..) pracowicie liczy rekordy.
</cyt>

'  UWAGA! Dla tabeli połączonej CurrentDB.TableDefs("Tabela1").RecordCount zwraca -1

 ΔΔΔ 

 

2.2 Jak sprawdzić, czy istnieje tabela ?

grupa: pl.comp.bazy-danych.msaccess
wątek: Pole w tabeli połączonej
w oparciu o artykuł: Krzysztofa Naworyty



' zwraca True jeżeli istnieje tabela,
Public Function knTableExists(sTableName As String) As Boolean
Dim dbs As DAO.Database

On Error Resume Next
Set dbs = CurrentDb
knTableExists = IsObject(dbs.TableDefs(sTableName))
Set dbs = Nothing
On Error GoTo 0

End Function


' przykładowe wywołanie:
Private Sub btnTest_Click()
Dim fRet As Boolean

fRet = knTableExists("MojaTabela")
MsgBox IIf(fRet, "Tabela istnieje.", "Tabela nie istnieje.")

End Sub

 ΔΔΔ 

 

2.3 Jak sprawdzić, czy istnieje pole w tabeli ?

grupa: pl.comp.bazy-danych.msaccess
wątek: Pole w tabeli połączonej
w oparciu o artykuł: Krzysztofa Naworyty



' zwraca True jeżeli tabela i pole w tabeli istnieje
Public Function knFieldExists(sTableName As String, _
sFldName As String) As Boolean
Dim dbs As DAO.Database
Dim tdf As DAO.TableDef

On Error Resume Next
Set dbs = CurrentDb
Set tdf = dbs.TableDefs(sTableName)
knFieldExists = IsObject(tdf(sFldName))
Set tdf = Nothing
Set dbs = Nothing
On Error GoTo 0

End Function


' przykładowe wywołanie:
Private Sub btnTest_Click()
Dim fRet As Boolean

fRet = knFieldExists("MojaTabela", "MojePole")
MsgBox IIf(fRet, "Pole istnieje.", "Pole (lub tabela) nie istnieje.")

End Sub

 ΔΔΔ