Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Global funktion "Fill_List(ctrListControl As Control, sql As Stri

Postades av 2002-07-08 20:56:36 - Per Johansson, i forum visual basic - allmänt, Tråden har 3 Kommentarer och lästs av 493 personer

Har en bra funktion men inte helt global.

Jag fyller en combo box med ex. Orter i Sverige och vill använda samma funktion för att fylla andra combo boxar med värde jag skickar in. Ja ni fattar nog av koden.

Så här ser koden ut nu:
Public Function Fill_List(ctrListControl As Control, sql As String) As Boolean

If TypeOf ctrListControl Is ListBox Or TypeOf _
ctrListControl Is ComboBox Then

ctrListControl.Clear
Dim tRs As Recordset
Set tRs = New Recordset

With tRs
.CursorLocation = adUseClient
.CursorType = adOpenForwardOnly
.ActiveConnection = dbConn
.Source = sql
.Open
End With

If Not tRs.EOF Then
With tRs
.MoveFirst
Do Until .EOF
ctrListControl.AddItem tRs!ort
ctrListControl.ItemData(ctrListControl.NewIndex) = tRs!idnr
.MoveNext
Loop

End With
End If
End If

Set tRs = Nothing 'Städa

End Function

Så här vill jag att den skall funka på något vis om det går?

Public Function Fill_List(ctrListControl As Control, sql As String, sNameField As String, sIdField As String ) As Boolean

Do Until .EOF
ctrListControl.AddItem sNameField
ctrListControl.ItemData(ctrListControl.NewIndex) = sIdField
.MoveNext

Den gillar inte String tror jag, vet inte riktigt om det går att lösa?
Tacksam för hjälp.


Svara

Sv: Global funktion "Fill_List(ctrListControl As Control, sql As

Postades av 2002-07-08 22:13:16 - Fredrik Salomonsson

Hej.

Jag har en här som jag skrev för längesen...
Den går att göra bättre

<code>
Public Sub FillData(ByRef ctrl As Control, ByRef rst As ADODB.RecordSet, ByRef strDataField As String, Optional ByRef strIDField As String, Optional DoClear As Boolean = True)
With ctrl
If DoClear Then
.Clear
End If
If strIDField <> "" Then
While Not rst.EOF
.AddItem rst(strDataField)
.ItemData(.NewIndex) = rst(strIDField)
rst.MoveNext
Wend
Else
While Not rst.EOF
.AddItem rst(strDataField)
rst.MoveNext
Wend
End If
End With
End Sub
</code>


Svara

Sv: Global funktion "Fill_List(ctrListControl As Control, sql As

Postades av 2002-07-08 22:48:34 - Per Johansson

Tack Du är en klippa Fredda!


Svara

Sv: Global funktion "Fill_List(ctrListControl As Control, sql As

Postades av 2002-07-09 00:59:32 - Andreas Hillqvist

Jag får väl komma med min funktion. Skrev den ur minnet och har inte möjlighet att testa den.<br>
<br>
* Jag har istället två funktioner. En för listbox och en för Combobox kontrollen. För att anropa medlemmarna av kontrollen med Earlybindings.<br>
<br>
* Istället för att bifoga fältnamnen skickar jag referenser till recordsetets fält. Slipper då hämta fältobjektet för varje post. Kan sätta en intern fältvariabel i funktionen. Men det är ju mer jobb. Enklare så här.<br>
<br>
* Gör det oxå möjligt att ange ett default värde för listan. Eller aktuellt värde.<br>
<br>
<code>
Public Sub FillCombo(Combo As Combo, RecordSet As ADODB.RecordSet, TextField As ADODB.Field, Optional DataField As ADODB.Field, Optional Value as Variant)
If DataField Is Nothing Then
If Not IsMissing(Value) Then
Do Until RecordSet.EOF
Combo.AddItem "" & TextField.Value
If TextField.Value = Value Then
Combo.ListIndex = Combo.NewIndex
Exit Do
End If
RecordSet.MoveNext
Loop
End If
Do Until RecordSet.EOF
Combo.AddItem "" & TextField.Value
RecordSet.MoveNext
Loop
Else
If Not IsMissing(Value) Then
Do Until RecordSet.EOF
Combo.AddItem "" & TextField.Value
Combo.ItemData(Combo.NewIndex) = DataField.Value
If DataField.Value = Value Then
Combo.ListIndex = Combo.NewIndex
Exit Do
End If
RecordSet.MoveNext
Loop
End If
Do Until RecordSet.EOF
Combo.AddItem "" & TextField.Value
Combo.ItemData(Combo.NewIndex) = DataField
RecordSet.MoveNext
Loop
End If
End Sub
</code>
<br>
<br>
Funktionen anropas såhär:
<code>
Dim rsTemp As ADDB.Recordset
Set rsTemp = New ADDB.Recordset
rsTemp.Open "SELECT * FROM Orter ORDER BY OrtNamn", conn
FillCombo Combo1, rsTemp, rsTemp("OrtNamn"), rsTemp("OrtId")
</code>
<br>
<br>
Om comboboxen har ett värde:
<code>
Dim rsTemp As ADDB.Recordset
Set rsTemp = New ADDB.Recordset
rsTemp.Open "SELECT * FROM Orter ORDER BY OrtNamn", conn
FillCombo Combo1, rsTemp, rsTemp("OrtNamn"), rsTemp("OrtId"), mOrtID
</code>


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 607
27 953
271 708
978
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies