Problemer med udskrivning af databasefelt
Hej eksperterNu sidder jeg her og har problemer med at finde fejlen i min kode. Jeg sidder og laver et lille program til en ven som gerne vil have styr på hans dvd-film.
Mit problem er at mit program åbenbart ikke forstår at læse udgivelsen for filmen(udgivelses år) hvis feltet er "tomt"(indeholder værdien "0") så fungerer det fint men så snart der kommer et årstal så går det helt galt. I mit listefelt skal den skrive filmtitel(udgivelsesår) men den skriver kun filmtitel() - hvis der ikke er et årstal skriver den kun filmtitel - ganske som den skal.
Ud over at den ikke udskriver feltet så går programmet helt ned hvis man klikker på filmen for at få vist detaljerne i en label. Hvis jeg udfylder feltet instruktør sker der ikke det store, linien hvor instruktøren skulle stå er tom(hvis der står "0" i databasen skriver den blot "(ikke angivet)")
Her følger koden til command1_click og filmliste_click():
command1_click:
Private Sub Command1_Click()
If searchtext.Text = "" Then
MsgBox "Du skal skrive et søgeord først!", , "Filmliste"
ElseIf searchtheme.Text = "Vælg kategori" Then
MsgBox "Du skal vælge en kategori først!", , "Filmliste"
Else
sql = "select titel, udgivet from film where [" & searchtheme.Text & "] like '%" & searchtext.Text & "%' order by titel"
Set rs = conn.execute(sql)
filmliste.Clear
If rs.EOF Then
MsgBox "Der blev ikke nogen film der matcher søgekriterierne!", , "Filmliste"
Else
Do Until rs.EOF
If rs("udgivet") = "0" Then
strTekst = rs("titel")
Else
strTekst = rs("titel") & "(" & rs("udgivet") & ")"
End If
filmliste.AddItem (strTekst)
rs.movenext
Loop
End If
End If
End Sub
og filmliste_click():
Private Sub filmliste_Click()
iPar = 0
For i = 1 To Len(filmliste.Text)
If Mid(filmliste.Text, i, 1) = "(" Then
iPar = iPar + 1
End If
Next
If iPar = 0 Then
strTekst = filmliste.Text
ElseIf iPar = 1 Then
For i = 1 To Len(filmliste.Text)
If Mid(filmliste.Text, i, 1) = "(" Then
If IsNumeric(Mid(filmliste.Text, i + 1, 4)) Then
strTekst = Left(filmliste.Text, i - 1)
Else
strTekst = filmliste.Text
End If
Exit For
End If
Next
ElseIf iPar > 1 Then
i = InStrRev(filmliste.Text, "(")
strTekst = Left(filmliste.Text, i - 1)
End If
sql = "select * from film where titel='" & strTekst & "'"
Set rs = conn.execute(sql)
If rs.EOF Then
MsgBox "Filmen " & strTekst & " blev ikke fundet", , "Filmliste"
Else
strTekst = ""
strTekst = strTekst & rs("titel")
If rs("udgivet") <> "0" Then
strTekst = strTekst & "(udgivet i " & rs("udgivet") & ")"
End If
strTekst = strTekst & Chr(13) & Chr(13)
strTekst = strTekst & "Sprog: "
If rs("sprog") = "0" Then
strTekst = strTekst & "(ikke angivet)"
Else
strTekst = strTekst & rs("sprog")
End If
strTekst = strTekst & Chr(13)
strTekst = strTekst & "Undertekster: "
If rs("undertekster") = "0" Then
strTekst = strTekst & "(ikke angivet)"
Else
strTekst = strTekst & rs("undertekster")
End If
strTekst = strTekst & Chr(13)
strTekst = strTekst & "Format: "
If rs("format") = "0" Then
strTekst = strTekst & "(ikke angivet)"
Else
strTekst = strTekst & rs("format")
End If
strTekst = strTekst & Chr(13)
strTekst = strTekst & "Genre: "
If rs("genre") = "0" Then
strTekst = strTekst & "(ikke angivet)"
Else
strTekst = strTekst & rs("genre")
End If
strTekst = strTekst & Chr(13)
strTekst = strTekst & "Instruktør: "
If rs("instruktør") = "0" Then
strTekst = strTekst & "(ikke angivet)"
Else
strTekst = strTekst & rs("instruktør")
End If
strTekst = strTekst & Chr(13)
strTekst = strTekst & "Filmselskab: "
If rs("filmselskab") = "0" Then
strTekst = strTekst & "(ikke angivet)"
Else
strTekst = strTekst & rs("filmselskab")
End If
strTekst = strTekst & Chr(13)
strTekst = strTekst & "Indsat i systemet: "
If rs("indsættelses dato") = "0" Then
strTekst = strTekst & "(ikke angivet)"
Else
strTekst = strTekst & rs("indsættelses dato")
End If
strTekst = strTekst & Chr(13)
strTekst = strTekst & "Kommentar: "
If rs("kommentar") = "0" Then
strTekst = strTekst & "Ingen kommentarer"
Else
strTekst = strTekst & rs("kommentar") & "."
End If
slet.Visible = True
filmID.Caption = rs("ID")
listeID.Caption = filmliste.ListIndex
filmdata.Caption = strTekst
strTekst = ""
End If
rs.Close
End Sub
Felterne i databasen:
id
titel
udgivet
instruktør
filmselskab
indsættelses dato
undertekster
format
kommentar
genre
sprog
Håber i kan hjælpe mig med at løse mysteriet...
Kalle