Hoe deze funktie "dim as string" toepassen in VBA-code?

Status
Niet open voor verdere reacties.

gast0136

Gebruiker
Lid geworden
18 sep 2013
Berichten
11
Hoi allemaal,

Vergeef mij als het blijkt dat er elders in dit forum een antwoord al staat voor mijn vraag, maar ik ben nog newbee met deze volgende toepassingen (string en integer als voorbeeld). Ik ben bezig om deze VBA-code toe te passen, maar ik krijg twee meldingen:

Melding 1:

Fout 3078 tijdens uitvoering: The Microsoft Jet database engine cannot find the input table or query 'tblALWL'. Make sure it exists and that its name is spelled correctly.

Melding 2:

Fout 3061 tijdens uitvoering: Too few parameters. Expected 1.

Code:
Private Sub frb_Control_Code_Click()
    With Me
        Dim Aberrancy As String
        Dim tblALWL As String
            Aberrancy = "Aberrancy_Address"
            tblALWL = "tbl_D_MODI_AL_WL_Patients"
                Form_Current
                If .frb_Control_Code = "2" Then
                    CurrentDb.Execute " UPDATE tblALWL SET tblALWL.Aberrancy = '" & txt_Value_New_2 & "' WHERE tblALWL.Experiment_Unique_Number = '" & .txt_Experiment_Unique_Number & "'"
                End If
    End With
End Sub

Weten jullie misschien wat ik verkeerd doe? :confused:
 
je gebruikt letterlijk tblALWL dus niet de vervangende waarde tbl_d_MOdi...

Die tweede error zie ik zo gauw niet, op welke regel is dat?
 
Hoi Wampier,

je gebruikt letterlijk tblALWL dus niet de vervangende waarde tbl_d_MOdi...

Dus ik kan dus niet zomaar tblALWL gebruiken om die te kunnen gebruiken als verwijzing naar een tabel "tbl_D_MODI_AL_WL_Patients"? Of moet ik een andere funktie gebruiken?

Die tweede error zie ik zo gauw niet, op welke regel is dat?

Sorry, dat ik hierover niet uitgeweid had. Als ik tblALWL vervang voor tbl_D_MODI_AL_WL_Patients, dan krijg ik deze melding. Zie hieronder:

Code:
Private Sub frb_Control_Code_Click()
    With Me
    Dim Aberrancy As String
        Aberrancy = "Aberrancy_Address"
            Form_Current
            If .frb_Control_Code = "2" Then
            CurrentDb.Execute " UPDATE tbl_D_MODI_AL_WL_Patients SET tbl_D_MODI_AL_WL_Patients.Aberrancy = '" & txt_Value_New_2 & "' WHERE tbl_D_MODI_AL_WL_Patients.Experiment_Unique_Number = '" & .txt_Experiment_Unique_Number & "'"
            End If
    End With
End Sub
 
Als je tbALWL zo wil gebruiken moet je die escapen net zoals "txt+value_New_2" etc. dan werkt het wel. Komt die tweede error niet van "form.current" of zo? anders moet ik even de verschillende commando's bekijken
 
Hoi Wampier,

De oorzaak is die "Aberrancy" in de regel van CurrentDb_execute! Dat is voor nu even opgelost. Maar is er daar geen mogelijkheid om die dim-funktie te kunnen toepassen in CurrentDb.Execute? Want ik heb het nodig met als reden dat ik een tabel heb met daarin een kolom "Aberrancy_Address" die verschillende adressen bevat. Elk adres komt precies overeen met de naam van de andere kolom in de andere tabel waarin de gegevens geüpdated moeten worden. :(
 
Laatst bewerkt:
Code:
            CurrentDb.Execute " UPDATE " & tblALWL & " SET " & Aberrancy & "= '" & txt_Value_New_2 _
                & "' WHERE Experiment_Unique_Number = " & .txt_Experiment_Unique_Number
Als je verwijst naar een nummer, dan mag je dat niet als tekst behandelen in de WHERE.
Tevens een manier om een variabele te mixen in de UPDATE ;)
 
Hoi OctaFish,

Supergeweldig! Dat is de oplossing die ik nodig heb! Het werkt! Dus in vervolg moet ik die strings tussen " & ... & " zetten. Bedankt hiervoor! :D

P.S. Wampier, jij ook bedankt voor meedenken en moeite! :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan