MS Access - przekazanie zmiennej z jednego SUB`a do innego SUB`a (wydarzenia typu "after")

Odpowiedz Nowy wątek
2019-07-16 12:41
0

Hej. Czy jest jakiś prosty sposób na przekazanie zmiennej z jednego "suba" do innego "suba"? Znalazłem jakieś rozwiązania, jednak żadne mnie nie satysfakcjonuje. Mój kod wygląda tak jak poniżej. Jak w łatwy sposób przekazać dalej "przypisanie"?

Sub wpr_wyborProjektu_AfterUpdate()
' Pierwsza część kodu

krotkaNazwaProjektu = wpr_wyborProjektu.Text ' Przepisanie wybranego projektu do pola - chodzi o samą nazwę.

strSql = "SELECT Ewidencje.ID_ewidencji FROM Ewidencje INNER JOIN KP_KartyProjektow on Ewidencje.ID_kartyProjektu = KP_KartyProjektow.ID_kartyProjektu WHERE KP_KartyProjektow.KP_krotkaNazwaProjektu = '" & krotkaNazwaProjektu & "' "
Set rst = CurrentDb.OpenRecordset(strSql)

przypisanie = rst!ID_ewidencji
' Dalsza część kodu
Else
End If
End Sub

Chciałbym tego użyć tutaj:

Sub wpr_okres_AfterUpdate()

Dim zmienna As String
zmienna = wpr_okres.Text
Tekst210.Value = zmienna
MsgBox przypisanie
MsgBox zmienna

zapytanko = "SELECT RAP_Raporty.RAP_zrealizowaneZadania FROM RAP_Raporty INNER JOIN Ewidencje on Ewidencje.ID_ewidencji = RAP_Raporty.ID_ewidencji WHERE Ewidencje.ID_ewidencji = " & przypisanie & " AND RAP_Raporty.RAP_okresRaportu = '" & zmienna & " ' "

End Sub

Pozostało 580 znaków

2019-07-16 16:58
1

To mozesz zrobić zmienną w ramach modułu formularza i tam to przechować, trochę to jednak slabę bo co jeżeli ktoś zrobi najpierw zmianę wpr_okres?

Pozostało 580 znaków

2019-07-17 07:39
0
Panczo napisał(a):

To mozesz zrobić zmienną w ramach modułu formularza i tam to przechować, trochę to jednak slabę bo co jeżeli ktoś zrobi najpierw zmianę wpr_okres?

nie zaznaczyłem, że "wpr_okres" jest polem, nie żadną zmienną. Troszkę nie rozumiem Twojej odpowiedzi, można by w innych słowach?

Pozostało 580 znaków

2019-07-17 09:30

nie zaznaczyłem, że "wpr_okres" jest polem, nie żadną zmienną. Troszkę nie rozumiem Twojej odpowiedzi, można by w innych słowach?

wiem, ze to pole bo wykorzystujesz jego zdarzenie after update.
Chodzi o to, ze ktoś może najpierw zmienić wpr_okres i wtedy przypisanie będzie niezdefiniowane.

co do zmiennej modułu formularza to w vba kod formularza może wyglądać tak:

Option Compare Database
Option Explicit

Dim przypisanie as String

Sub wpr_wyborProjektu_AfterUpdate()
' Pierwsza część kodu

krotkaNazwaProjektu = wpr_wyborProjektu.Text ' Przepisanie wybranego projektu do pola - chodzi o samą nazwę.

strSql = "SELECT Ewidencje.ID_ewidencji FROM Ewidencje INNER JOIN KP_KartyProjektow on Ewidencje.ID_kartyProjektu = KP_KartyProjektow.ID_kartyProjektu WHERE KP_KartyProjektow.KP_krotkaNazwaProjektu = '" & krotkaNazwaProjektu & "' "
Set rst = CurrentDb.OpenRecordset(strSql)

przypisanie = rst!ID_ewidencji
' Dalsza część kodu
Else
End If
End Sub
Sub wpr_okres_AfterUpdate()

Dim zmienna As String
zmienna = wpr_okres.Text
Tekst210.Value = zmienna
MsgBox przypisanie
MsgBox zmienna

zapytanko = "SELECT RAP_Raporty.RAP_zrealizowaneZadania FROM RAP_Raporty INNER JOIN Ewidencje on Ewidencje.ID_ewidencji = RAP_Raporty.ID_ewidencji WHERE Ewidencje.ID_ewidencji = " & przypisanie & " AND RAP_Raporty.RAP_okresRaportu = '" & zmienna & " ' "

End Sub

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0