MS ACCESS - globalna zmienna.

0

Mam dwa formularze: "Formularz1" oraz "Formularz2". Na "formularzu2" wyciągana jest pewna wartość (kontoGlobalne), która przechowuje intigera, którego chciałbym wykorzystać na "formularzu1". Kod wyciągający moje 'kontoGlobalne' to:

Public Sub Polecenie18_Click()

Dim rst3 As Dao.Recordset
Dim strSQL3 As String

If IsNull(Me.login) Then
    MsgBox "Pusty login", vbInformation, "Keczup"
    Me.login.SetFocus
ElseIf IsNull(Me.haslo) Then
    MsgBox "puste haslo", vbInformation, "majonez"
    Me.haslo.SetFocus
Else
    If (IsNull(DLookup("[login]", "Uzyszkodnicy", "[login]='" & Me.login.Value & "'"))) Or _
    (IsNull(DLookup("[haslo]", "Uzyszkodnicy", "[haslo]='" & Me.haslo.Value & "'"))) Then
        MsgBox "Nieprawidlowe cos"
    Else
        strSQL3 = "SELECT ID_uzytkownika FROM Uzyszkodnicy WHERE Uzyszkodnicy.login = '" & login & "' "
        Set rst3 = CurrentDb.OpenRecordset(strSQL3)
        
        kontoGlobalne = rst3!ID_uzytkownika
        
        rst3.Close
        Set rst3 = Nothing
    DoCmd.OpenForm "Formularz1"
    MsgBox kontoGlobalne
    End If
End If
End Sub

Chciałbym użyć tej zmiennej w "Formularzu1" przy takim zapytaniu:

strSql = "SELECT KartyProjektow.KP_krotkaNazwaProjektu FROM ((KartyProjektow INNER JOIN Ewidencja on Ewidencja.ID_kartyProjektu = KartyProjektow.ID_kartyProjektu) INNER JOIN Uzyszkodnicy on Ewidencja.ID_uzytkownika = Uzyszkodnicy.ID_uzytkownika) WHERE Uzyszkodnicy.ID_uzytkownika = kontoGlobalne "

Jednak to zapytanie powoduje to, że wyskakuje mi okienko do wpisania ID z "palca" czego nie chcę. Znalazłem na jednym forum: klik informację, że potrzebuję tę zmienną globalną utworzyć poza formsem, w standardowym module. Nie bardzo wiem jak uzyskać ten standardowy model, jak przekazać mu wartość tej zmiennej?

1
strSql = "SELECT KartyProjektow.KP_krotkaNazwaProjektu FROM ((KartyProjektow INNER JOIN Ewidencja on Ewidencja.ID_kartyProjektu = KartyProjektow.ID_kartyProjektu) INNER JOIN Uzyszkodnicy on Ewidencja.ID_uzytkownika = Uzyszkodnicy.ID_uzytkownika) WHERE Uzyszkodnicy.ID_uzytkownika = " & kontoGlobalne
0

@Panczo: Jak ustawiam wartość "na sztywno" (1 czy 2) składnia nie wyrzuca błędu. Gdy dołączyłem fragment: & kontoGlobalne wyskakuje błąd: Błąd składniowy (brak operatora) w wyrażeniu kwerendy "Uzyszkodnicy.ID_uzytkownika =.

1

Prawdopodobnie w zmiennej kontoGlobalne nie masz nic, z Tojego kodu nie widać jak i gdzie ją deklarujesz. Jednak zamiast robic globalną zmienną, przekaż jej wartość jako argument otwarcia

Czyli w kodzie:

DoCmd.OpenForm "Formularz1", acNormal, , , , , kontoGlobalne

A później w formularz1:

 strSql = "SELECT KartyProjektow.KP_krotkaNazwaProjektu FROM ((KartyProjektow INNER JOIN Ewidencja on Ewidencja.ID_kartyProjektu = KartyProjektow.ID_kartyProjektu) INNER JOIN Uzyszkodnicy on Ewidencja.ID_uzytkownika = Uzyszkodnicy.ID_uzytkownika) WHERE Uzyszkodnicy.ID_uzytkownika = " & Me.OpenArgs

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