Unikaj tego powszechnego błędu podczas wykonywania procedury przechowywanej w programie MS Access
Uwielbiamy uruchamiać procedury składowane z naszego kodu VBA, ale jest jeden problem, na który musisz zwrócić uwagę:Wykonywanie procedury, która wpływa na dane już załadowane w formularzu. Jeśli nie będziesz ostrożny, otrzymasz następujący komunikat:
Na szczęście jest to łatwe rozwiązanie, oto kilka sugestii:
- Zamknij formularz, a następnie uruchom procedurę składowaną. Zakłada to, że możesz nie chcieć przeglądać zmienionych danych w tym samym formularzu.
- Ustaw źródło rekordów formularzy na zero, a następnie ustaw je z powrotem na oryginalne źródło danych (patrz kod poniżej).
Zamknij formularz, a następnie uruchom procedurę składowaną
Oto kilka pseudokodów na początek:
Private Sub RunSomeProcedure()Dim lngOrderID as Long'Zakładając, że musisz przekazać informacje z formularza do procedury składowanej, na przykład OrderIDlngOrderID =Me.OrderID 'Jeśli nie przechowujesz informacji, nie będą one dostępne po zamknięciu formularza formDoCmd.Close acForm, Me.Name 'Zamyka to formExecuteMyCommand "uspStoredProcedureName " &lngOrderIDEnd Sub
Nie znasz ExecuteMyCommand? Możesz to sprawdzić tutaj.
Ustaw źródło rekordów formularza na puste
Private Sub RunSomeProcedure()Dim lngOrderID as LongDim strRecordSource as String'Zakładając, że musisz przekazać informacje z formularza do procedury składowanej, na przykład OrderIDlngOrderID =Me.OrderID 'Jeśli nie przechowujesz informacji, zostanie niedostępne po zamknięciu formstrRecordSource =Me.RecordSource 'Przechowuj źródło rekordów do późniejszego wykorzystania useMe.RecordSource =vbNullStringExecuteMyCommand "uspStoredProcedureName " &lngOrderIDMe.RecordSource =strRecordSource 'Przywróć formularz, aby użytkownik mógł zobaczyć zaktualizowane dane podrzędneDołącz do mnie 9 marca ze specjalnym gościem Ebo Quansah!
Przyjdź i poznaj najnowsze informacje o Microsoft Access dzięki Ebo, menedżerowi produktu w grupie Access. Aby uzyskać szczegółowe informacje, kliknij tutaj:https://accessusergroups.org/sql-server-with-access/event/sql-server-with-access-whats-new-in-access-a-presentation-by-the-access- menedżer produktu/