webForumDet fria alternativet

Fel på insert

6 svar · 220 visningar · startad av saw

sawMedlem sedan mars 20011 880 inlägg
#1

Jag får fel på denna Inserten.
Jag skall bara uppdatera ett fält, kan man inte göra så här?

     minDB.Execute ("INSERT INTO t_album(album) VALUES( '" & strAlbum & "'")

just nu så jobbar jag i VB så det är lite okänd mark för mig...

LarsGMedlem sedan dec. 200012 464 inlägg
#2

SQL-mässigt så ser det helt rätt ut.

Vad får du för fel?

sawMedlem sedan mars 20011 880 inlägg
#3

Jag får Syntax error in In INSERT INTO.
Så här ser allt ut.

Dim strAlbum As String
    Set mittRS1 = minDB.OpenRecordset("SELECT album FROM t_album ORDER BY album", dbOpenDynaset)
If Text1.Text = LCase(mittRS1!Album) Then
    Label1.Caption = " Det finns redan en CD med det namnet."
Else
    
    strAlbum = Text1.Text
      minDB.Execute ("INSERT INTO t_album(album) VALUES( '" & strAlbum & "'")
    Label1.Caption = " Nu sparas CD:n med namnet: " & Text1.Text
    Text1.Text = ""
    Command1.Caption = "OK"
    Fyll_Lista
End If
mittRS1.Close
Command1.Enabled = False

Några förslag?

LarsGMedlem sedan dec. 200012 464 inlägg
#4

En anledning till att du får fel kan vara att strAlbum innehåller en '. I så fall måste du ersätta varje apostrof med två.

minDB.Execute ("INSERT INTO t_album(album) VALUES( '" & replace(strAlbum,"'","''") & "'")

Sen så är din kod för att kontrollera om ett album finns inte heltäckande. Du testar bara att den första posten du får inte är samma som den du vill lagra

Set mittRS1 = minDB.OpenRecordset("SELECT album FROM t_album where album = '" & replace(strAlbum,"'","''") & "'", dbOpenDynaset)
if not mittRS1.eof then
Label1.Caption = " Det finns redan en CD med det namnet."
Else
    'insert

(Nu vet jag inte om det ser ut så här i VB (t.ex. EOF)).

@ndersMedlem sedan juni 200032 969 inlägg
#5

En sak som LarsG missat, och även jag själv vid de första genomläsningarna av koden; det saknas en slutparentes i din SQL-fråga. Det bör alltså se ut så här:

minDB.Execute ("INSERT INTO t_album(album) VALUES( '" & replace(strAlbum,"'","''") & "')")

Mvh,

sawMedlem sedan mars 20011 880 inlägg
#6

Tack Anders och LarsG, men nu hände någonting lustigt.
Jag fick felmedelande, men likväl så la han in det i databasen.
Vad gör jag för att slippa error?
Felet jag får nu är:
Fel: 3420 was generated by DAO.Recordset Object Invalid or no longer set.

Det blir fel här med, den godkänner dubbleter....

    Set mittRS1 = minDB.OpenRecordset("SELECT album FROM t_album where album = '" & Replace(strAlbum, "'", "''") & "'", dbOpenDynaset)

Vad tror ni?

sawMedlem sedan mars 20011 880 inlägg
#7

Fel av mig :r .

Felet var ett förargligt slarvfel:
mittRS1.Close
(jag använder ju inte det!!!)
Tack för all hjälp.

130 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)