Avatar billede mekaniker Nybegynder
12. september 2003 - 10:27 Der er 14 kommentarer og
2 løsninger

fejl i update statement

Jeg har en formular hvor jeg viser en post's ID, navn og billede.

på denne formular, har jeg lavet en knap som skal slette billedet. Den skal både slette billedet fra disken og update tabellen med Null i billedfil feltet.

Sletningen af selve filen virker, men updaten promter mig for en værdi til Me.Arter_id, selvom dette er id'en som bliver vist på formularen.
Jeg har også prøvet at skrive id'en ud og her vises den også.

Jeg har også prøvet at skrive et tal i update statementet, og dette virker.


Et lille tillæg, hvordan opdaterer man formularen efter at at tabellen er opdateret og filen er slettet, så billedet forsvinder fra formularen.


Kode til sletknap:
-----------------------
Private Sub Slet_Click()
On Error GoTo Err_Slet_Click
Dim CurrentDBDir, filnavn, SQLstmt As Variant
Dim strDBPath, strDBFile As String
Dim id As Integer


strDBPath = CurrentDb.Name
strDBFile = Dir(strDBPath)
CurrentDBDir = Left$(strDBPath, Len(strDBPath) - Len(strDBFile))

Me!Arter_billedsti = CurrentDBDir & "Billeder\Arter\"
   
filnavn = Me!Arter_billedsti & Me!Arter_billedfil
id = Cint(Me.Arter_id)
MsgBox id
   
If Me!Arter_billedfil <> "" Or Me!Arter_billedfil <> Null Then
   
    SQLstmt = "UPDATE Arter SET Arter.Billedfil = Null WHERE Arter.Arter_id = id"
   
    DoCmd.RunSQL SQLstmt
   
       
    Kill filnavn

End If



Exit_Slet_Click:
    Exit Sub

Err_Slet_Click:
    MsgBox Err.Description
    Resume Exit_Slet_Click

End Sub
Avatar billede henrik13 Nybegynder
12. september 2003 - 10:32 #1
Sådan opdateres underformulare:
Opdatere underformular:
Me![underformularens navn].requery

i felternes OnChange/Vedændring hændelse.
Avatar billede mekaniker Nybegynder
12. september 2003 - 10:50 #2
Kan du ikke svare mig på det andet....?
Avatar billede overchord Nybegynder
12. september 2003 - 10:58 #3
Bare lige for at vaere sikker: feltet billedfil er ikke sat som required i tabellen? eller der er ikke sat en default vaerdi paa eller noget i den retning?
Du kunne ogsaa bare saette feltet i formularen til Null. Eftersom det er linket til tabellen. Paa den maade behoever du ikke at eksekvere sql
Avatar billede mekaniker Nybegynder
12. september 2003 - 11:12 #4
Overchord

feltet billedfil er ikke sat som required i tabellen, og der er ikke sat en default værdi.

Kan du ikke forklare hvordan jeg gør det, som du foreslår
Avatar billede terry Ekspert
12. september 2003 - 11:23 #5
SQLstmt = "UPDATE Arter SET Arter.Billedfil = Null WHERE Arter.Arter_id = " & id
Avatar billede mekaniker Nybegynder
12. september 2003 - 11:47 #6
Nu har jeg gjort som Overchord sagde, og det virker, men hvordan får jeg formularen til at reloade eller refreshe, så billedet forsvinder.
Avatar billede overchord Nybegynder
12. september 2003 - 11:56 #7
me.requery
Avatar billede mekaniker Nybegynder
12. september 2003 - 12:06 #8
OK, sidste spørgsmål

Hvordan reloader jeg så den formular, som åbnede den formular hvor jeg slettede billedet.

Altså reloade en anden formular, end den er er på.
Avatar billede terry Ekspert
12. september 2003 - 12:17 #9
forms!YourForm.requery
Avatar billede overchord Nybegynder
12. september 2003 - 12:18 #10
den burde automatisk vaere reloaded naar du vender tilabe til formularen eller aabner den, men maaske kan du bruge foelgende (ikke test)

dim frm as Form
set frm = Form_DinForm

frm.Requery
Avatar billede mekaniker Nybegynder
12. september 2003 - 13:35 #11
Hvad er der galt med denne.

SQLstmt = "UPDATE Arter SET Arter.Billedfil = '" & fil2 & "' WHERE Arter.Arter_id=" & Me.Arter_id

Fejl: missing operater
Avatar billede terry Ekspert
12. september 2003 - 13:53 #12
Looks OK from here but I cant see what is in fil2 or me.Arter_ID!

Try looking at this in the debug window! (CTRL+G)
Then write
?SQLstmt

You need a breakpoint just after the line SQLstmt = ......
Avatar billede overchord Nybegynder
12. september 2003 - 14:32 #13
Hvis du bruger lighedstegn skal der vel ikke vaere singlepings omkring fil2
Proev evt at bruge Like istedet for lighedstegn
Avatar billede terry Ekspert
12. september 2003 - 17:38 #14
Nothing wrong with the update as ling as the table/fields and variables are OK!

SQLstmt should contain something like this

UPDATE Arter SET Arter.Billedfil = 'Hi med dig ' WHERE Arter.Arter_id=5

So you need to check that the table and field names are correct AND that the variables (fil2 and Me.Arter_id) contain data.

Oh! and that the name of field (Arter_id) on the form is also correct.
Avatar billede mekaniker Nybegynder
12. september 2003 - 19:07 #15
Jeg har fået det til at virke, tak for hjælpen.

Fejlen var at arter.arter_id = Null
Avatar billede terry Ekspert
13. september 2003 - 09:34 #16
:o)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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