|
| | | |
• 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.9 Jak obliczyć średnią liczb z 2 lub więcej pól tego samego rekordu ?

Public Function knSrednia(ParamArray args()) As Double
Dim i As Long, k As Long
Dim s As Double
For i = LBound(args) To UBound(args)
k = k + 1
If IsNumeric(Nz(args(i), 0)) Then
s = s + Nz(args(i), 0)
End If
Next
If k = 0 Then Exit Function
knSrednia = s / k
End Function
ΔΔΔ | | | | |
|
| | |
|
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 ?


Public Function HideShowTable( _
sTableName As String, _
fVisible As Boolean, _
Optional fRefreshDB As Boolean = False) _
As Boolean
Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
Set dbs = CurrentDb
On Error Resume Next
' spróbuj utworzyć zmienną obiektową tdf
Set tdf = dbs.TableDefs(sTableName)
On Error GoTo 0
If (tdf Is Nothing) = True Then
' zmienna obiektowa nie została utworzona, (tabela nie istnieje)
Set dbs = Nothing
Exit Function
End If
With tdf
If fVisible = True Then
.Attributes = .Attributes And (Not dbHiddenObject)
Else
.Attributes = .Attributes Or dbHiddenObject
End If
End With
Set tdf = Nothing
Set dbs = Nothing
' odśwież okno bazy
If fRefreshDB Then Application.RefreshDatabaseWindow
HideShowTable = True
End Function
ΔΔΔ | | | | |
|
| | |
|
2.11 Jak pobrać współrzędne kursora myszy nad oknem tabeli (kwerendy) poza obszarem danych ?


Metoda ta opiera się na pomyśle Krzysztofa Naworyty przypisania do zmiennej obiektowej otwartej tabeli (kwerendy) jako formularza i przypisaniu takiemu formularzowi do zdarzenie OnMouseMove funkcji pobierajacej położenie kursora myszy.
Więcej szczegółów w wątku: Czy kwerenda (lub tabela) może poinformować system, że jest zamykana ?
Dim frm As Access.Form
Set frm = Screen.ActiveDatasheet.Form
frm.OnMouseMove = _
"=evMouseMove([Form],[Forms]![" & Me.Name & "]![txtPosMouse])"
funkcja evMouseMove(...) pobiera współrzędne kursora myszy nad oknem tabeli i wpisuje do formantu TextBox w formularzu otwierającym tabelę (kwerendę).
ΔΔΔ | | | | |
|
| |