重新绑定我用的这个函数:
Private Sub RefillList()
rs.Close
rs.Open "select user_ID from user1", db, adOpenKeyset
rs.Requery
With Me.DataList1
Set .DataSource = rs
Set .RowSource = rs
.ListField = rs.Fields(0).Name
.BoundColumn = rs.Fields(0).Name
.DataField = rs.Fields(0).Name
End With
End Sub
在当前窗口删除一条记录再调用它时没问题,DataList马上更新了.但如果我新增一条记录(通过打开另一个窗口新增),DataList的更新却时好时坏。为啥亚???
Private Sub RefillList()
rs.Close
rs.Open "select user_ID from user1", db, adOpenKeyset
rs.Requery
With Me.DataList1
Set .DataSource = rs
Set .RowSource = rs
.ListField = rs.Fields(0).Name
.BoundColumn = rs.Fields(0).Name
.DataField = rs.Fields(0).Name
End With
End Sub
在当前窗口删除一条记录再调用它时没问题,DataList马上更新了.但如果我新增一条记录(通过打开另一个窗口新增),DataList的更新却时好时坏。为啥亚???
rs.Close
rs.Open "select user_ID from user1", db, adOpenKeyset
rs.Requery
With Me.DataList1
Set .DataSource = rs
Set .RowSource = rs
.ListField = rs.Fields(0).Name
.BoundColumn = rs.Fields(0).Name
.DataField = rs.Fields(0).Name
End With
End Sub
代码好像没有什么问题你还是看一下别的吧.看有没有写入数据库?
写入了,因为如果我关了窗口再打开,就能在DataList1中看到新增的项(Form_Load事件里,DataList1要跟数据库绑定)
If add = 1 Then
RefillList
add = 0
End If
End Sub
add是全局变量,当通过打开另一个窗口新增成功时add=1
问题仍然在!是不是只要数据库是在另一个窗口更新的DataList就不能更新啊?
谁还有别的意见吗?
Public ss As New ADODB.Connection
Dim rs As New ADODB.Recordset
Public UserName As StringPublic Sub Main()
ss.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\message.mdb;Persist Security Info=False"
loginForm.Show
End Sub
Public Function UseRs(ByVal txtsql As String) As ADODB.Recordset
With rs
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open txtsql, ss
End With
Set UseRs = rs
End Function然后你调用这个函数
如果你就要求一个DataCombo1更新你可以写个函数
Private Sub abc()
If IsNull(rs1) Then
MsgBox "recordset is nothing"
Else
MsgBox "recordset is open"
rs2.Close
End If
Set rs2 = UseRs("select user_ID from user1")
Set DataCombo1.RowSource = rs2
DataCombo1.ListField = "roomID"
DataCombo1.Refresh
End Sub每次Form_Load或其他需要更新的事件触发时都调用它
DataCombo1.ListField = "user_ID"
If IsNull(rs2) Then