Via en TreeView1_NodeClick Problemet är att du anropar frmAlbum i Form_Load: Tack Andreas, pålitlig och påläst som alltid.If sats som inte stämmer.(LÖST)
<code>
Dim frmForm As frmAlbum
Set frmForm = New frmAlbum
frmForm.ShowAlbum Node.Text, vbModal</code>
så kommer jag till en ny form för att visa vad jag klickade på.
<code>
Private Sub Form_Load()
FormCenter Me
eInfo.Caption = mAlbumName
frmAlbum.Caption = mAlbumName
VadSkickas
End Sub
Public Sub ShowAlbum(AlbumName As String, Optional Modal, Optional Owner)
mAlbumName = AlbumName
Me.Show Modal, Owner
End Sub
</code>
Nu vill jag kunna avgöra var jag klickade:
<code>
Sub VadSkickas()
SQL = "Select * FROM t_Album WHERE Album='" & mAlbumName & "'"
Set Rst = Con.Execute(SQL)
If Rst.EOF Then
MsgBox "En låt"
Else
MsgBox "Ett Album"
End If
End Sub
</code>
Oavsett var jag klickar, så första gången så kommer den först MsgBoxen upp, sedan den andra.
Klickar jag en gång till så blir det rätt, men jag vill ha det rätt ifrån början.
Hu skall jag lösa det???Sv: If sats som inte stämmer.
Försök med:
<code>
Private Sub Form_Load()
FormCenter Me
eInfo.Caption = mAlbumName
Me.Caption = mAlbumName
VadSkickas
End Sub
</code>
När du sätter caption för frmAlbum laddar du den instansen därav två msgbox'ar.<br>
<br>
Har ett litet tips när du arbetar med listview. Skapa en nyckel med ett prefix och räknaren:
<code>
Const PrefixSong = "S"
Const PrefixAlbum = "A"
Private sub Form_Load
'Öppna recordset
'Lägg till alla songer:
Do Until rsTemp.EOF
ListView1.Listitems.Add , PrefixSong & rsTemp("SongID"),"" & rsTemp("SongTitle")
rsTemp.MoveNext
Loop
'Öppna recordset
'Lägg till alla album:
Do Until rsTemp.EOF
ListView1.Listitems.Add , PrefixAlbum & rsTemp("AlbumID"),"" & rsTemp("AlbumTitle")
rsTemp.MoveNext
Loop
End Sub
Private Sub ListView1_Click(ListItem As ListItem)
Select Case Left(ListItem, 1)
Case PrefixSong
Msgbox "En låt"
Case PrefixAlbum
Msgbox "Ett Album"
End Select
End Sub
</code>Sv: If sats som inte stämmer.
Det har ordnat sig nu. När jag skippade MsgBoxarna och la in det som sökord i n SQL, så var allt klart.
Jag skall dock använda ditt tips till någonting annat.
Än en gång, tack