Results 1 to 4 of 4

Thread: Stuck Pls - recordset

  1. #1
    shuj66
    Guest

    Stuck Pls - recordset

    I have a form that displays data from a SQL Server through adodb.

    Users can navigate through the recordsets by clicking on commands button - First,Next,Prev,Last or they can double click on an item in List1(displays ID,Status) and then get the respective information.

    The command buttons work fine. The Listbox_dblClick seems to be displaying the right information when I double Click it but somehow it seems to go back to the first record each time so I am not able to use it and update records as it will update the first record all the time. I don't have this problem when I go to the specific record using the command buttons.

    Before updating or deleting I have a message box that popup with the TicketID and CustomerID. With the commad button I get the current one but when I double click an item in the list1, it displays the right info but when I go to do an update or delete it shows the first ticketid and cutomerid all the time.

    Also, when navigating through the records, List2 grabs data from another table and displays certain info.

    When I don't include the Function Main in the List1_DblClick() it seem to show the right record but as soon as i include it there it displays the right info. but when I try to update it shows the first one. I need it there to display the items in List2 otherwise nothing is displayed. Can someone help me figure out a way to do what I want to do.


    Here is what my code looks like:

    Private Sub List1_DblClick()
    rs.MoveFirst

    For x = 0 To List1.ListIndex - 1
    rs.MoveNext
    Next

    Fill_Fields
    Label21.Caption = rs.AbsolutePosition & " of " & rs.RecordCount

    Call Main
    Call Fill_HistoryList

    End Sub

    'Connect to the database and open the recordset.
    Set Conn1 = New ADODB.Connection
    Set rs = New ADODB.Recordset
    Set conn2 = New ADODB.Connection
    Set rsHistory = New ADODB.Recordset
    rs.CursorType = adOpenKeyset
    rs.LockType = adLockOptimistic
    rs.CursorLocation = adUseClient
    rsHistory.CursorType = adOpenKeyset
    rsHistory.LockType = adLockOptimistic
    rsHistory.CursorLocation = adUseClient
    Dim DBPath As String

    strCnn = "Provider=SQLOLEDB.1;Password=;Persist
    Security Info=True;User ID=admin;Initial
    Catalog=Monitor;Data Source=SQL"
    strCnn2 ="Provider=SQLOLEDB.1;Password=;Persist
    Security Info=True;User ID=admin;Initial
    Catalog=Monitor;Data Source=SQL"

    Conn1.Open strCnn
    rs.Open "SELECT * FROM Ticket WHERE CustID = '" &
    form1.txtCustId.Text & "'", Conn1, , , adCmdText
    strSQL = "SELECT * FROM Ticket WHERE custID = '" &
    form1.txtCustId.Text & "'"

    conn2.Open strCnn2
    rsHistory.Open "SELECT * FROM ticketHistory WHERE ticketid
    = '" & Val(form2.txtFields(0).Text) & "'", conn2, , ,
    adCmdText
    StrSQLHistory = "SELECT * FROM ticketHistory WHERE ticketid
    = '" & Val(form2.txtFields(0).Text) & "'"

    End Sub


    Function Fill_Fields()
    'Fill the textboxes with the values from the database.
    '--------------------------------------------------------

    If Not (rs.BOF = True Or rs.EOF = True) Then
    txtFields(0).Text = rs!TicketID
    txtFields(1).Text = rs!CustID
    Me.Caption = "Trouble Ticket" & " - " & txtFields(1).Text & " " &
    txtFields(0).Text

    'Checks if we are at the first or last record.
    cboTicket.Text = rs.Fields("TicketID") 'as above

    If rs!TicketStatus <> "" Then
    txtFields(2).Text = rs.Fields("TicketStatus") 'txtFields(2) =
    TicketStatus and display that data
    Else
    txtFields(2).Text = ""
    End If

    If rs!PostedBy <> "" Then
    txtFields(3).Text = rs.Fields("PostedBy") 'txtFields(3) =
    PostedBy and display that data
    Else
    txtFields(3).Text = ""
    End If

    If rs!AssignedTo <> "" Then
    txtFields(4).Text = rs.Fields("AssignedTo") 'txtFields(4) =
    AssignedTo and display that data
    Else
    txtFields(4).Text = ""
    End If

    End Function

    Sub Fill_HistoryList()
    with rshistory

    List2.Clear

    Do While Not rsHistory.EOF
    formatDate = rsHistory!HistoryDate
    FormatTime = rsHistory!HistoryTime
    formatDate = (Format(formatDate, "Medium Date"))
    FormatTime = (Format(FormatTime, "Medium Time"))

    List2.AddItem rsHistory!UserName & " " & formatDate
    & " " & FormatTime & " " & rsHistory!TicketID & " " &
    rsHistory!History
    rsHistory.MoveNext
    Loop

    End With

    End Sub

  2. #2
    Don't Panic! Ecniv's Avatar
    Join Date
    Nov 2000
    Location
    Amsterdam...
    Posts
    5,343
    On the double click store the ID of the selected item into a variable held on the forms code. Then when you want to delete or update you use this variable. When you reset/clear the form, reset the variable to -1 then you can do checks for whether the item has been selected or not.


    Vince

    BOFH Now, BOFH Past, Information on duplicates

    Feeling like a fly on the inside of a closed window (Thunk!)
    If I post a lot, it is because I am bored at work! ;D Or stuck...
    * Anything I post can be only my opinion. Advice etc is up to you to persue...

  3. #3
    shuj66
    Guest
    Could you be a little bit more specific. A coded example would help.
    Thanx.

  4. #4
    shuj66
    Guest
    I think I found the answer.

    Instead of calling the whole function, all I had to do was:

    rsHistory.Close
    rsHistory.Open "SELECT * FROM ticketHistory WHERE
    ticketid = '" & Val(txtFields(0).Text) & "'", conn2, , ,
    adCmdText
    Fill_HistoryList

    Thanks.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width