Avatar billede telep Nybegynder
19. november 2001 - 15:07 Der er 10 kommentarer og
1 løsning

Opdatere et felt i Access

Hey,

Nogen der kan hjælpe mig med hvordan jeg via Visual Basic retter i en felt i en access database?

min kode er nu således:
Dim datDB As Database
Dim recCustomer As Recordset
Dim recCusActive As Recordset
Dim sqlFS As String
Dim sqlCus As String
Dim recId As String

DBEngine.SystemDB = \"F:\\VB\\Troels\\TP\\Violation\\system.mdw\"
DBEngine.DefaultUser = \"lj\"
DBEngine.DefaultPassword = \"pippen\"

Set datDB = DBEngine.Workspaces(0).OpenDatabase(\"F:\\VB\\Troels\\TP\\Violation\\2000.mdb\")
sqlFS = \"Select * FROM CustomerActive\"
Set recCusActive = datDB.OpenRecordset(sqlFS)

Do While Not recCusActive.EOF

    recId = recCusActive(\"RecID\")
       
    sqlCus = \"Select * FROM Customer WHERE RecId = recId\"
    Set recCustomer = datDB.OpenRecordset(sqlCus)
   
    recCustomer(\"Locked\") = -1 (dette fungere ikke)
       
    recCusActive.MoveNext
   
Loop

End Sub

jeg skal altså rette det felt der hedder \"Locked\" til -1

30 point til den første!
Avatar billede terry Ekspert
19. november 2001 - 15:10 #1
recCustomer.update

recCusActive.MoveNext
   
Avatar billede telep Nybegynder
19. november 2001 - 15:49 #2
How to do that ?

det skal være feltet \"locked\" der skal være lig med -1
Avatar billede terry Ekspert
19. november 2001 - 15:51 #3
Do While Not recCusActive.EOF

    recId = recCusActive(\"RecID\")
       
    sqlCus = \"Select * FROM Customer WHERE RecId = recId\"
    Set recCustomer = datDB.OpenRecordset(sqlCus)
   
    recCustomer(\"Locked\") = -1 (dette fungere ikke)

    recCusActive.Update       
    recCusActive.MoveNext
   
Loop

Avatar billede telep Nybegynder
19. november 2001 - 17:13 #4
Nej det spiller ikke, jeg får af vide at:

Run-time error \'3020\':

Metoden Update eller CancelUpdate er brugt uden addNew eller edit
Avatar billede terry Ekspert
19. november 2001 - 20:29 #5
Do While Not recCusActive.EOF

    recId = recCusActive(\"RecID\")
       
    sqlCus = \"Select * FROM Customer WHERE RecId = recId\"
    Set recCustomer = datDB.OpenRecordset(sqlCus)

    recCusActive.Edit \'Or recCusActive.AddNew for new record
    recCustomer(\"Locked\") = -1 (dette fungere ikke)

    recCusActive.Update       
    recCusActive.MoveNext
   
Loop
Avatar billede terry Ekspert
19. november 2001 - 20:29 #6
sorry!
Avatar billede telep Nybegynder
20. november 2001 - 10:01 #7
Det er skam helt i orden, men det virker stadig ikke. Jeg får ikke fejl længere men jeg får heller ikke opdateret feltet \"Locked\" i tabellen \"Customer\".... any clues?

Avatar billede terry Ekspert
20. november 2001 - 10:15 #8
can you see what the contents of recCustomer(\"Locked\") contains before .update, and then after .update

Use
debug.print recCustomer(\"Locked\")

Avatar billede telep Nybegynder
20. november 2001 - 10:46 #9
Jeg har fundet ud af hvad problemet er!
sqlCus = \"Select * FROM Customer WHERE RecId = recId\" Til sidst i sætningen hvor jeg vil finde alle de records hvor feltet RecId er ligmed min variabel recId... det fejler...
Variablen bliver gemt som den skal men den kan ikke findes frem i SQL sætningen...

Har du tjek på hvordan jeg løser dette ?


Avatar billede terry Ekspert
20. november 2001 - 10:49 #10
sqlCus = \"Select * FROM Customer WHERE RecId = \" & recId
   
Avatar billede terry Ekspert
20. november 2001 - 10:49 #11
I should have seen that at the start!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester