Hejsan, ytterligare ett ynkligt problem. Comboboxens ItemData egenskap passar utmärkt för att lagra ID nummer och liknande. Har en gennerell funktion för att ladda en combobox. Men du är tvungen att istället slå ihop fälten i frågan. Hej Andreas Det hade fungerat bra om kolumnen hade varit tal. Men nu är det text, och det som sparas är personnummer (typ 752302-3322), och då går det inte att spara det så. Någon? Du kan ju ta bort bindetecknet och spara det som ett tal. Eller så kan du använda dig av en imagecombo. Har ju en key och en tag egenskap för varje list post i vilket du kan spara ditt värde... :O) Hm, har kollat runder lite men hittar inget bra exempel att titta på för just detta ändamål. Någon som orkar/kan visa ett litet exempel på hur jag sparar en sträng antingen i en combo eller en imagecombo? Vore väldigt tacksam för ett exempel!En combobox....
Har en combobox som tar emot värden från två olika tabeller från en databas (fnamn, enamn) och detta görs såhär:
combo.additem rs("fnamn") & " " & rs("enamn")
detta loopas.
Det jag är ute efter är att om man väljer ett namn i combon, och sedan klickar på en knapp, så ska deras ID visas i en msgbox. Antar att det måste laddas in på något sätt i combon? men hur?
Hoppas på svar!
Mvh
/MichaelSv: En combobox....
MSSv: En combobox....
<Code>
Private Sub Form_Load()
Dim con as ADODB.Connection
Dim rsTemp as ADODB.Recordset
Const strSQL as string = "SELECT RecID, fnamn & ' ' & enamn As FullName" & vbCrLf & _
"FROM TabellNamn" & vbCrLf & _
"ORDER BY fnamn, enamn"
Set con = New ADODB.Connection
con.Open "<<<Connection string>>>"
Set rsTemp = New ADODB.Recordset
rsTemp.Open strSQL, con, adOpenForwardOnly, adLockReadOnly
LoadCombo Combo1, rsTemp, "FullName", "RecID"
rsTemp.Close
Set rsTemp = Nothing
con.Close
Set con = Nothing
End Sub
</Code>
<Code>
Public Function LoadCombo(ComboBox As ComboBox, Recordset As ADODB.Recordset, TextField As String, Optional DataField As String, Optional Default As Long)
Dim fldText As ADODB.Field
Dim fldData As ADODB.Field
Set fldText = Recordset.Fields(TextField)
If Len(DataField) > 0 Then
Set fldData = Recordset.Fields(DataField)
If Default Then
Do Until Recordset.EOF
ComboBox.AddItem fldText.Value
ComboBox.ItemData(ComboBox.NewIndex) = fldData.Value
If fldData.Value = Default Then
ComboBox.ListIndex = ComboBox.NewIndex
Recordset.MoveNext
Exit Do
End If
Recordset.MoveNext
Loop
End If
Do Until Recordset.EOF
ComboBox.AddItem fldText.Value
ComboBox.ItemData(ComboBox.NewIndex) = fldData.Value
Recordset.MoveNext
Loop
Else
Do Until Recordset.EOF
ComboBox.AddItem fldText.Value
Recordset.MoveNext
Loop
End If
End Function
</Code>Sv: En combobox....
Dina <code> funkade förmodligen inte därför att det
är "Space" mellan de olika Funktionern och Subar
Tror Sven
som lyckats med en test
Ha det
DSSv: En combobox....
Sv: En combobox....
Sv: En combobox....
Tack på förhand
/Michael