Cześć, mam taki problem, chciałem zrobić formularz na accessie z ewidencją korespondencji. Zrobiłem 2 tabele, użytkownicy- userzy co beda uzupełaniać oraz ewidencja czyli tabela gdzie bedzie przetrzymywana ewidencja.
Chciałem zrobic formularz w którym użytkownik będzie wybierany z pola kombi i do wybranego użytkownika dopisać resztę danych które są przetrzymywane w tabeli Ewidencja. Nie moge sobie poradzić żeby userzy byli wybierani z listy, jakieś pomysły? Robiąc w SQL takie rzeczy to dziala normalnie, a tutaj nie chce. zapytań pisanych w sql tez nie łapie.
Formularze Access
- Rejestracja: dni
- Ostatnio: dni
- Postów: 18
- Rejestracja: dni
- Ostatnio: dni
- Postów: 3890
Bo to nie wpisujesz w źródło formantu tylko w żróło wierszy.
Dodatkowo, zrób formularz dla tabeli ewidencja i go wstaw jako podformularz, anie osadzaj bezpośrednio tabeli
Skoropiszesz o access to spakuj i podaj plik accdb, wtedy będzie łatwiej pomóc
- Rejestracja: dni
- Ostatnio: dni
- Postów: 18
dodaje załącznik, niestety po zmianie o której mówiłeś nie pomogło.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 3890
Bo to nie tak łatwo i nie wiem czy dobrze rozumiem intencje, ale zobacz: formularz1 z załącznika
- Rejestracja: dni
- Ostatnio: dni
- Postów: 18
raczej nie do końca, ma to działać na takiej zasadzie ze z listy wybieramy użytkownika, który ma dodać wpis a potem uzupełniamy pola i dajemy zapisz i pola się czyszczą, czyli przechodzi do kolejnego rekordu. Jak na obrazku z załącznika
- Rejestracja: dni
- Ostatnio: dni
- Postów: 37
Witam
Skoro wątek jest to ja się podłącze..
Nie wyznaje się wystarczająco na tym czego potrzebuję więc proszę o pomoc.
Mam formularz, który wstawia dane do tabeli,


Pewne pola muszą być wypełnione ( 1,2,3,4)
Chciałbym aby w momencie przechodzenia do następnego rekordu w zdarzeniu "przed aktualizacją formularza" następowało
sprawdzenie wymaganych pól i wyświetlenie sie komunikat o uzupełnieniu danego pola ( np. zlecający)
To co spreparowałem niestety nie działa
Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull([T_WZ_HEADER].[driver].) Then
MsgBox "Wypełnij pole Zlecający"
[T_WZ_HEADER].[driver].SetFocus
Cancel = True
Exit Sub
End If
End Sub
- Rejestracja: dni
- Ostatnio: dni
- Postów: 37
Witam
Jest jakiś "magiczny" sposób aby zablokować okienko główne access, przed wyłączeniem z "X" ?

- Rejestracja: dni
- Ostatnio: dni
- Postów: 3890
Musisz stworzyć formularz i otworzyć go podczas uruchamiania jako ukryty.
Wstawić kod do zdarzenia unload:
Private Sub Form_Unload(Cancel As Integer)
If MsgBox("Czy chcesz zakończyć pracę?", vbYesNo + vbQuestion + vbDefaultButton2, "Wyjście") = vbNo Then
Cancel = 1
end if
End Sub
- Rejestracja: dni
- Ostatnio: dni
- Postów: 37
@Panczo: Dzieki, to co napisałeś działa tak jak ma działać.
Ale potrzebowałbym nico zmodyfikować działanie.. na powyższym prtscr pod przyciskiem EXIT zapisane jest :
Private Sub Command7_Click()
loog_buttons TB_Login, "Close Application"
Application.Quit
End Sub
Czy i jak zmodyfikować Sub Form_Unload tak aby wyświetlał sie monit że jedynym słusznym jest wciśniecie EXIT .
A po wciśnięciu EXIT zamykałoby ten ukryty formularz i całą aplikację.
Jak wpisałem tam (EXIT) >>>
DoCmd.Close acForm, "Frm_ukryty", acSaveNo
niestety nie działa, wraca do Sub Form_Unload
- Rejestracja: dni
- Ostatnio: dni
- Postów: 3890
Musisz zrobić to tak, aby procedura unload "wiedziała", czy ma potwierdzać zamknięcie czy nie.
Najprościej w formularzu: Frm_ukryty:
'zmienna trzymająca info o tym czy pytać przed zamknięciem
Private confirm as Boolean
'dodaj własciwość formularza, która pozwoli sterować zmienną confirm
Public Property Let confirmonclose(ByVal value As boolean)
confirm = value
End Property
Private Sub Form_Unload(Cancel As Integer)
if confirm then
If MsgBox("Czy chcesz zakończyć pracę?", vbYesNo + vbQuestion + vbDefaultButton2, "Wyjście") = vbNo Then
Cancel = 1
end if
end if
End Sub
Private Sub Form_Load()
'przypisz odpowiednią wartość na starcie
confirm = true
End Sub
I teraz, jak wykonujesz application.quit to dodaj linijke przed:
Forms("Frm_ukryty").confirmonclose = false
- Rejestracja: dni
- Ostatnio: dni
- Postów: 37
@Panczo: sorry że truje z banałami , ale nie wiem gdzie mam wpisać /ustawić te 2 pozycje
- bo raczej nie w procedurę zdarzenia / Przy załadowaniu lub Przy Zwolnieniu/ te są już uzupełnione + linijka przy zakończeniu aplikacji.
'zmienna trzymająca info o tym czy pytać przed zamknięciem
Private confirm as Boolean
'dodaj własciwość formularza, która pozwoli sterować zmienną confirm
Public Property Let confirmonclose(ByVal value As boolean)
confirm = value
End Property
- Rejestracja: dni
- Ostatnio: dni
- Postów: 3890
W module formularza, w całości powinien wyglądać mniej więcej tak jak w kodzie.
Dopisz powyżej procedur.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 3890
A nie naciskałeś stop gdzieś po drodze?
Jaku ustawisz debuger na property to też bedzie pusty?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 3890
dopisz na samej górze modułu
Option explicit
Zapisz formularz, zamknij uruchom i przetestuj.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 37
@Panczo: dzięki WIELKIE , problem tkwił prawdopodobnie w tym że formularz Frm_ukryty w trakcie uruchamiania zapisałem niestety jako normal a nie ukryty. A że go zapisałem jako małą formatkę i z parametrami wyświetlania ( coby nie rzucał się w oczy), no to się nie rzucał.. Zapomniałem zmienić na Hidden. Raz jeszcze serdecznie dziękuję za pomoc.
