Whing Dela Cruz
asked on
Code Lacking
What's wrong in my code below? I'm using msflexgrid. It doesn't save correctly
Public Sub OPEN_CON1(cn As ADODB.Connection, db As String, ServerName As String)
Set cn = New ADODB.Connection
cn.Provider = "sqloledb"
cn.ConnectionTimeout = 25
cn.Properties("Data source").Value = Trim(ServerName)
cn.Properties("Initial Catalog").Value = Trim(db)
cn.Properties("User ID").Value = "sa"
cn.Properties("Password").Value = ""
cn.CursorLocation = adUseClient
cn.Open , "sa", ""
End Sub
Public Sub save_Table(cn As ADODB.Connection, lpTable_No As String, Customer_name As String, Time_in As String, Time_Out As String)
Dim rs As ADODB.Recordset
Dim sql As String
Set rs = New ADODB.Recordset
sql = "select * from The_Table where Table_No='" & lpTable_No & "'"
rs.LockType = adLockOptimistic
rs.CursorType = adOpenKeyset
rs.Open sql, cn
With rs
If .BOF = True And _
.EOF = True Then
.AddNew
!Table_No = lpTable_No
End If
!Customer_name = grid.TextMatrix(grid.Row, 1)
!Time_in = Trim(grid.TextMatrix(grid.Row, 2))
!Time_Out = grid.TextMatrix(grid.Row, 3)
.Update
.Close
End With
Set rs = Nothing
End Sub
Private Sub CmdSave()
Dim cn As ADODB.Connection
Call OPEN_CON1(cn, "MyTable", "Winpos")
Call save_Table(cn, grid.TextMatrix(grid.Row, 0), grid.TextMatrix(grid.Row, 1), grid.TextMatrix(grid.Row, 2), grid.TextMatrix(grid.Row, 3))
Set cn = Nothing
End Sub
grid.bmp
You do not have a loop and you are passing in the values to your sub but not using them. You need to set the current row as the grid will not loop within itself.
There are many ways to do this, but try this.
There are many ways to do this, but try this.
Private Sub CmdSave()
Dim cn As ADODB.Connection
Call OPEN_CON1(cn, "MyTable", "Winpos")
dim iRow as Integer
For iRow = 0 to 3
grid.row = iRow
Call save_Table(cn, grid.TextMatrix(grid.Row, 0), grid.TextMatrix(grid.Row, 1), grid.TextMatrix(grid.Row, 2), grid.TextMatrix(grid.Row, 3))
Set cn = Nothing
End Sub
sorry forgot the "next"
Private Sub CmdSave()
Dim cn As ADODB.Connection
Call OPEN_CON1(cn, "MyTable", "Winpos")
dim iRow as Integer
For iRow = 0 to 3
grid.row = iRow
Call save_Table(cn, grid.TextMatrix(grid.Row, 0), grid.TextMatrix(grid.Row, 1), grid.TextMatrix(grid.Row, 2), grid.TextMatrix(grid.Row, 3))
Next
Set cn = Nothing
End Sub
ASKER
Hi!
i tried the given code and it was able to saved the entire row but the problem is only the last row was saved. the first and the second to the last row was not.
What else should i do?
thanks!
i tried the given code and it was able to saved the entire row but the problem is only the last row was saved. the first and the second to the last row was not.
What else should i do?
thanks!
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Hi!
you mean like this;
!Customer_name = Customer_name = grid.TextMatrix(grid.Row, 1)
!Time_in = Time_in = Trim(grid.TextMatrix(grid. Row, 3))
!Time_Out = Time_Out = grid.TextMatrix(grid.Row, 5)
you mean like this;
!Customer_name = Customer_name = grid.TextMatrix(grid.Row, 1)
!Time_in = Time_in = Trim(grid.TextMatrix(grid.
!Time_Out = Time_Out = grid.TextMatrix(grid.Row, 5)
ASKER
Hi!
I need to move same set of question because i had changed some part of my table.
I hope you will monitor on it..
Thanks!
I need to move same set of question because i had changed some part of my table.
I hope you will monitor on it..
Thanks!
Sorry for not replying sooner, unbeknownst to me my POP email server has been down so I wasn't getting alerts.
<<you mean like this;>>
Erm... no, I meant it just like I posted it. What you have done there will try and set each field to either True or False (-1 or 0) depending on whether the passed argument values match the columns you're specifying explicitly there. You're already specifying which columns of the grid to use when you call the save_Table procedure from CmdSave, so there shouldn't be any need for you to reference the grid from within the procedure itself.
<<you mean like this;>>
Erm... no, I meant it just like I posted it. What you have done there will try and set each field to either True or False (-1 or 0) depending on whether the passed argument values match the columns you're specifying explicitly there. You're already specifying which columns of the grid to use when you call the save_Table procedure from CmdSave, so there shouldn't be any need for you to reference the grid from within the procedure itself.
ASKER
I'm very sorry but i could not exactly understand what you meant for...
Can you move to my other set of question because i transfered it for more details in my problem.
Thanks!
Can you move to my other set of question because i transfered it for more details in my problem.
Thanks!
ASKER