954,558 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

listbox

does any1 have any idea how to link listboxes with adodc to a database?

shabina
Newbie Poster
18 posts since Jul 2006
Reputation Points: 10
Solved Threads: 0
 

With a listbox, I'm pretty sure you have to do it all manually, for example:
1) Connect To Database
2) Query Database
3) Add Relevant info to listbox using the .additem method.

As far as making the listbox directly receive the recordsets.... I don't think you can.

Comatose
Taboo Programmer
Team Colleague
2,910 posts since Dec 2004
Reputation Points: 361
Solved Threads: 215
 

Do you have a recordset???
Then, you do the folling

With RS
Do until .EOF
lisbox.additem recordset.field
.movenext
loop

end with

let me know if this sounds confusing though/

extofer
Posting Whiz in Training
239 posts since Aug 2005
Reputation Points: 8
Solved Threads: 6
 

Which, is basically what I said, without posting the code. If you are trying to bind the listbox to the database, though, that method will not work.

Comatose
Taboo Programmer
Team Colleague
2,910 posts since Dec 2004
Reputation Points: 361
Solved Threads: 215
 

this is what my code is like, i'm trying to add a new task and in another form, i can later modify, if i wanna make changes....i desperately need help from any1 who's willing to offer, coz i'been stuck with listbox b4 i can proceed with my project. when i add new tasks, my lstAttach doesn't show the tasks in the database and in my frmModify, i use an ADODC which works for the textboxes but not my lstAttach...any ideas? below is my code for frmAdd and frmModify..can sum1 point me in the right direction, so i can get this load on listbox off my back...!

Private Sub cmdAdd_Click()
Set wk2 = DBEngine.CreateWorkspace("MyWks", "admin", "", dbUseJet)
        Set db2 = wk2.OpenDatabase("c:\Project 1\legalminder1.mdb", False)
        Set rs2 = db2.OpenRecordset("addrecord", dbOpenDynaset)
        MsgBox "Add Record", vbInformation, "Record"
        
        rs2.AddNew
        rs2.Fields(0).Value = UCase(txtID.Text)
        rs2.Fields(1).Value = UCase(txtDefineTask.Text)
        rs2.Fields(2).Value = UCase(txtDocuments.Text)
        rs2.Fields(3).Value = DTPicker1.Value
        rs2.Fields(4).Value = CInt(txtDays.Text)
        rs2.Fields(5).Value = UCase(txtNotes.Text)
        rs2.Fields(6).Value = lstAttach.Text
        rs2.Update
        lstAttach.AddItem NoNull(rs2.Fields(6).Value)
        
        txtDefineTask = ""
        txtDocuments = ""
        DTPicker1.Value = Date
        txtDays = ""
        txtNotes.Text = ""
        lstAttach.Clear
        txtDefineTask.SetFocus
   
 End Sub
 
Private Sub cmdModify_Click()
strResponse1 = MsgBox(" Do you want to Save Changes to this Record ?", vbYesNo + vbExclamation, "Record")
        If strResponse1 = 6 Then
            cn5.Open "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=c:\Project 1\legalminder1.mdb; Persist Security Info=false"
            rs5.Open "select * from addrecord", cn5, adOpenDynamic
            cn5.BeginTrans
            sql = "update addrecord set " & _
            "Task = '" & txtDefineTask.Text & "', " & _
            "Documents = '" & txtDocuments.Text & "', " & _
            "DDate = '" & txtDueDate.Text & "', " & _
            "Days = '" & txtDays.Text & "', " & _
            "Notes = '" & UCase(txtNotes.Text) & "', " & _
            "Attachment='" & UCase(lstAttach.Text) & "' where ID = " & txtID.Text
            cn5.Execute sql
            MsgBox "Record Updated", vbInformation, "Record"
            cn5.CommitTrans
            Adodc1.Refresh
            rs5.Close
            cn5.Close
            Adodc1.Recordset.MoveNext
        txtID.Text = NoNull(Adodc1.Recordset.Fields(0).Value)
        txtDefineTask.Text = NoNull(Adodc1.Recordset.Fields(1).Value)
        txtDocuments.Text = NoNull(Adodc1.Recordset.Fields(2).Value)
        txtDueDate.Text = NoNull(Adodc1.Recordset.Fields(3).Value)
        txtDays.Text = NoNull(Adodc1.Recordset.Fields(4).Value)
        txtNotes.Text = NoNull(Adodc1.Recordset.Fields(5).Value)
        lstAttach.Text = NoNull(Adodc1.Recordset.Fields(6).Value)
        
        ElseIf strResponse1 = 7 Then
            Exit Sub
        End If
   
End Sub
shabina
Newbie Poster
18 posts since Jul 2006
Reputation Points: 10
Solved Threads: 0
 

One Problem that stands out, is that the lstAttach is a listbox, and NOT a textbox. A listbox has a .text property, but it's basically there just to trick you. I wrote a test program, that has only 2 lines of code on form load. Which is: list1.text = "test" and then msgbox list1.text , and you'll see the msgbox is still blank. I guess microsoft had some lazy programmers, and just decided that if a certain control doesn't logically need a certain property, to just ignore it. If you want to add the item from the listbox, you have to know which item you want to add. A listbox is almost identical to an object form of an array, in that it has indices (indexes). If you want to know which item the USER selected from the listbox, you'll need to use something like this:

rs2.AddNew
rs2.Fields(0).Value = UCase(txtID.Text)
rs2.Fields(1).Value = UCase(txtDefineTask.Text)
rs2.Fields(2).Value = UCase(txtDocuments.Text)
rs2.Fields(3).Value = DTPicker1.Value
rs2.Fields(4).Value = CInt(txtDays.Text)
rs2.Fields(5).Value = UCase(txtNotes.Text)
rs2.Fields(6).Value = lstAttach.list(lstattach.listindex)
rs2.Update

What I've done, here, is changed lstAttach.text to lstAttach.list(lstattach.listindex). If the user has not selected any item in the listbox (meaning, no item is highlighted) then you can use numbers if you know which number you want to add. For example, to add the very first item in the listbox to the database: lstAttach.list(0) . I hope this helps to clear up some of the problem.

Comatose
Taboo Programmer
Team Colleague
2,910 posts since Dec 2004
Reputation Points: 361
Solved Threads: 215
 

the thing is i'm adding attachments from a dialog box, so say i add 3 files from there, only the 3rd file is read and displayed in the Attachment field in my database, not the other 2! nor does these added files show in my lstAttach in frmModify, even though textbox works when i navigate on my adodc.

shabina
Newbie Poster
18 posts since Jul 2006
Reputation Points: 10
Solved Threads: 0
 

I don't understand.....maybe you should attach the entire project. You only have 6 fields in the record (from what I can tell), so, how would you plan to add all the other stuff in the listbox? You'd need fields for those too, right? If you close in the modify portion, what do we see? UCase(lstAttach.Text), ok, it's using text again, and not list(0) or list(1) or list(list1.listindex)

Comatose
Taboo Programmer
Team Colleague
2,910 posts since Dec 2004
Reputation Points: 361
Solved Threads: 215
 

how do i post attachments here, or should i zip it, or jst paste the entire code?

shabina
Newbie Poster
18 posts since Jul 2006
Reputation Points: 10
Solved Threads: 0
 

zip it, and then attach it (you might have to click the "advanced" button below. Then I can see what you are doing, and try to follow along with your explanation of what it's SUPPOSED to be doing ;)

Comatose
Taboo Programmer
Team Colleague
2,910 posts since Dec 2004
Reputation Points: 361
Solved Threads: 215
 

i've attached the project, i look forward to ur assistance...as i'm in need of help! thanks in advance.

Attachments LegalMinder.ZIP (482.45KB)
shabina
Newbie Poster
18 posts since Jul 2006
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You