Geen melding na sql-update in VB

Status
Niet open voor verdere reacties.

Tick399

Gebruiker
Lid geworden
20 mrt 2013
Berichten
37
Ik heb een formulier voor het wijzigen van het wachtwoord. In VB doe ik, als de oude gebruikersnaam en het oude wachtwoord kloppen, een sql-update van de inlogtabel met het nieuwe wachtwoord. Dit werkt allemaal prima, maar ik krijg wel altijd een standaard melding bij het updaten van de tabel of ik het zeker weet dat de tabel bijgewerkt moet worden. Ik wil deze melding niet hebben of anders veranderen. Hoe kan ik dat in de code afvangen? Dit is de code:

Code:
Private Sub Afbeelding146_Click()
Dim x As Variant
Dim sCheck As String
Dim strSql As String

     On Error Resume Next
     Me.Txtgebruikersnaam.SetFocus
     If Me.Txtgebruikersnaam.Text & "" = "" Then
         MsgBox "Vul de gebruikersnaam in"
         Me.Txtgebruikersnaam.SetFocus
         Exit Sub
     End If
     Me.txtwachtwoord.SetFocus
     If Me.txtwachtwoord.Text & "" = "" Then
         MsgBox "Vul het oude wachtwoord in"
         Me.txtwachtwoord.SetFocus
         Exit Sub
     End If
     Me.txtwachtwoord3.SetFocus
     If Me.txtwachtwoord3.Text & "" = "" Then
         MsgBox "Vul het nieuwe wachtwoord in"
         Me.txtwachtwoord3.SetFocus
         Exit Sub
     End If
     
     sCheck = "[Gebruikersnaam]='" & Me.Txtgebruikersnaam & "' AND [Wachtwoord]='" & Me.txtwachtwoord & "'"
     x = Nz(DLookup("[Gebruikersnaam]", "[Inlogtabel]", sCheck))
     If Not x = vbNullString Then
              
        strSql = "UPDATE Inlogtabel SET Inlogtabel.Wachtwoord = [Forms]![Wijzigen wachtwoord v2]![txtwachtwoord3] " & vbCrLf & _
"WHERE (((Inlogtabel.Gebruikersnaam)=[Forms]![Wijzigen wachtwoord v2]![txtgebruikersnaam]));"
        
        DoCmd.RunSQL strSql
        MsgBox "Het wachtwoord is gewijzigd!"
        DoCmd.Close acForm, "Wijzigen wachtwoord v2"
     Else
         MsgBox "Onjuiste gebruikersnaam of wachtwoord"
         Me.Txtgebruikersnaam.SetFocus
     End If
End Sub
 
Je kunt de boodschap definitief uitzetten in je opties (en waarom zou je dat niet doen?) of per query instellen. De laatste optie ziet er zo uit:
Code:
        DoCmd.SetWarnings False
Niet vergeten de instelling na het uitvoeren van die queries weer op TRUE te zetten, anders ga je nog gekke dingen tegenkomen...

Overigens heb ik je in een ander draadje uitgelegd hoe je formulierwaarden moet gebruiken in functies en queries, en doe je dat nu toch weer op een onhandige manier. Dus hier de verbeterde versie ;)
Code:
        DoCmd.SetWarnings False
        strSql = "UPDATE Inlogtabel SET Wachtwoord = '" & Me.txtwachtwoord & "' WHERE (Gebruikersnaam='" & Me.Txtgebruikersnaam& "');"
        DoCmd.RunSQL strSql
        DoCmd.SetWarnings True
 
Laatst bewerkt:
Dank je wel Michel voor de reactie. Ik weet hoe je naar formulier kunt verwijzen met Me., maar dat heb ik hier niet gedaan omdat ik een formulier met query gebruik om sql-code om te kunnen zetten vanuit een query naar VB-code. Dan worden alle punten, komma's en haken automatisch toegevoegd. Ik bouw dus een query op met behulp van het menu kopieer dan de het sql-statement naar mijn formulier en met 1 druk op de knop heb ik precies de tekst die nodig is voor mijn VB-code. Dat is misschien lui maar het voorkomt een hoop fouten in zowel de query opbouw als in de VB-code. Ik kan zelf wel sql-statements maken maar dat is voor mij al zo lang geleden uit mijn programmeursdagen dat ik er meestal een voor mij laat maken door het systeem en dan deze aanpas. Vandaar dat er dan nog volledige formulierverwijzingen e.d. in mijn sql-code zijn blijven staan. Vandaar dat het lijkt alsof ik jouw raad niet heb opgevolgd uit het andere draadje :) . Ik kan in ieder geval weer verder.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan