我用vb+access+adodc1+datagrid
有3个字段,编号,账号,金额.我在datagrid中新增记录,只输入账号,金额,编号自动加1成12345678....连续 Dim db As ADODB.Connection
Dim rs As ADODB.Recordset
Dim dmin As IntegerPrivate Sub Command3_Click()
Dim dmin As Integer
rs.Open "select max(编号) as [dmin] from biao", db, adOpenKeyset, adLockOptimistic
rs.Close
Adodc1.Recordset.Fields("编号") = dmin + 1
Adodc1.Recordset.Fields("账号") = Text1.Text
Adodc1.Recordset.Fields("金额") = Text2.Text
Adodc1.Refresh
DataGrid1.RefreshEnd Sub
Private Sub Form_Load()
Set db = New ADODB.Connection
Set rs = New ADODB.Recordset
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\tyq.mdb;Persist Security Info=False;"
End Sub 请问高手这代码错在哪?请指正!
有3个字段,编号,账号,金额.我在datagrid中新增记录,只输入账号,金额,编号自动加1成12345678....连续 Dim db As ADODB.Connection
Dim rs As ADODB.Recordset
Dim dmin As IntegerPrivate Sub Command3_Click()
Dim dmin As Integer
rs.Open "select max(编号) as [dmin] from biao", db, adOpenKeyset, adLockOptimistic
rs.Close
Adodc1.Recordset.Fields("编号") = dmin + 1
Adodc1.Recordset.Fields("账号") = Text1.Text
Adodc1.Recordset.Fields("金额") = Text2.Text
Adodc1.Refresh
DataGrid1.RefreshEnd Sub
Private Sub Form_Load()
Set db = New ADODB.Connection
Set rs = New ADODB.Recordset
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\tyq.mdb;Persist Security Info=False;"
End Sub 请问高手这代码错在哪?请指正!
解决方案 »
- 对SQL语句中的WHERE子句中遇到NULL值的参数绑定问题
- SQL 查詢問題
- 查询后提示“行集不支持反向提取”,知道的进来帮忙一下。
- 为什么在VB中运算20000 * 7.55 * 1.01012得出的结果不对
- 分析一下,,,, 简单。。。
- 問一個小菜的問題:Treeview中有几個組,組里有成員,我想讓其中一個組一直排在最后一个.急等
- 如何用程序实现adodc的上一条、下一条,我用的是rs.movenext,出现错误提示!‘行集不允许反向取数!~’
- 请教:DIR$函数是否可以检测局域网内某一台机器上的目录是否存在
- 怎么改变vb保存文件的默认路径?
- 请问哪里有英文版的《红楼梦》下载?
- 为什么多了一个0
- VB OLE中插入word,想做个按钮对WORD翻页,点一下翻一页
Dim dmin As Integer
rs.Open "select max(编号) as [dmin] from biao", db, adOpenKeyset, adLockOptimistic
dmin= val(rs(0).Value) '少了这一句
rs.Close
Adodc1.Recordset.Fields("编号") = dmin + 1
Adodc1.Recordset.Fields("账号") = Text1.Text
Adodc1.Recordset.Fields("金额") = Text2.Text
Adodc1.Refresh
DataGrid1.Refresh End Sub
Adodc1.Recordset.Fields("编号") = Adodc1.Recordset.RecordCount + 1这样试试
Adodc1.Recordset.AddNew '加上这一句
rs.Close Adodc1.Recordset.Fields("编号") = dmin + 1
Adodc1.Recordset.Fields("账号") = Text1.Text
Adodc1.Recordset.Fields("金额") = Text2.Text
Adodc1.Recordset.update '加上这一句
Adodc1.Refresh
DataGrid1.Refresh
Dim rs As ADODB.Recordset
Dim dmin As IntegerPrivate Sub Command1_Click()
Dim dmin As Integer
rs.Open "select max(编号) as [dmin] from biao", db, adOpenKeyset, adLockOptimistic
dmin = Val(rs(0).Value)
Adodc1.Recordset.AddNew
rs.Close
Adodc1.Recordset.Fields("编号") = dmin + 1
Adodc1.Recordset.Fields("账号") = Val(Text1.Text)
Adodc1.Recordset.Fields("金额") = Val(Text2.Text)
Adodc1.Recordset.Update
Adodc1.Refresh
DataGrid1.RefreshEnd SubPrivate Sub Command2_Click()
Adodc1.Recordset.Delete
End SubPrivate Sub Form_Load()
Set db = New ADODB.Connection
Set rs = New ADODB.Recordset
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\tyq.mdb;Persist Security Info=False;"End Sub 不行,主要问题是关闭再打开,账号,金额两字段的数字只在第一行显示.不换行,不形成在上一次数据之后添加,编号却连续并正常显示,请问高手昨办?????
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.MoveLast
Adodc1.Refresh
DataGrid1.Refresh 这是个小问题,如果还不行,将工程发过来 [email protected]
Adodc1.Recordset.Fields("编号") = dmin + 1
Adodc1.Recordset.Fields("账号") = Text1.Text
Adodc1.Recordset.Fields("金额") = Text2.Text 把以上的修改为:
rs.Fields("编号") = dmin + 1
rs.Fields("账号") = Text1.Text
rs.Fields("金额") = Text2.Text 你使用了ADO对象,根本就不需要Adodc1控件了,多余。另外,给你三个使用ADO对象操作Access数据库的函数,每次操作只需要带入参数即可,很方便。
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'函数功能:连接指定的数据库
'参数说明:cnnP:数据库连接对象;
' :adoP:数据集存储对象;
' :strPath:数据库路径;
' :strPassword:数据库密码;
'返回说明:True:连接成功 False:连接失败
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Public Function funConnectDataBase(cnnP As ADODB.Connection, adoP As ADODB.Recordset, ByVal strPath As _
String, ByVal strPassword As String) As Boolean
On Error GoTo errFunction
Set cnnP = New ADODB.Connection
Set adoP = New ADODB.Recordset
cnnP.Provider = "Microsoft.Jet.OLEDB.4.0"
cnnP.Open "Data Source = " & strPath & ";jet oledb:database password=" & strPassword
funConnectDataBase = True
Exit Function
errFunction:
funConnectDataBase = False
End Function
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'函数功能:关闭数据库连接对象和数据文件的关联
'参数说明:cnnP:数据库连接对象;
' :adoP:数据库存储对象;
'返回说明:True:关闭连接成功 False:关闭连接失败
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Public Function funCloseDataBase(cnnP As ADODB.Connection, adoP As ADODB.Recordset) As Boolean
On Error GoTo errFunction
Set adoP = Nothing
Set cnnP = Nothing
funCloseDataBase = True
Exit Function
errFunction:
funCloseDataBase = False
End Function
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'过程功能:对指定的对象执行指定的SQL语句
'参数说明:cnnP:ADO连接对象
' :adoP:ADO记录集对象
' :strSql:SQL语句
' :bolQueryRecord:是否是查询记录集
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Public Sub subExcuteSQL(cnnP As ADODB.Connection, adoP As ADODB.Recordset, strSql As String, bolQueryRecord _
As Boolean)
If bolQueryRecord Then '如果是查询记录集
adoP.Open strSql, cnnP, adOpenStatic, adLockBatchOptimistic
Else
cnnP.Execute strSql
End If
End Sub
代码如下:
Dim db As ADODB.Connection
Dim rs As ADODB.Recordset
Dim dmin As IntegerPrivate Sub Command1_Click()
Dim dmin As Integer
rs.Open "select max(编号) as [dmin] from biao", db, adOpenKeyset, adLockOptimistic
dmin = Val(rs(0).Value)
Adodc1.Recordset.AddNew
rs.Close
'Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("编号") = dmin + 1
Adodc1.Recordset.Fields("账号") = Val(Text1.Text)
Adodc1.Recordset.Fields("金额") = Val(Text2.Text)
Adodc1.Recordset.Update
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.MoveLast
Adodc1.Refresh
DataGrid1.Refresh
Call Command3_Click
End SubPrivate Sub Command2_Click()
Adodc1.Recordset.Delete
End SubPrivate Sub Command3_Click()
Form1.Refresh
Adodc1.Refresh
DataGrid1.Refresh
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.MoveLastEnd SubPrivate Sub Form_Load()
Command3.Visible = False
Set db = New ADODB.Connection
Set rs = New ADODB.Recordset
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\tyq.mdb;Persist Security Info=False;"
Adodc1.Recordset.MoveLastEnd Sub
以上代码希能给初学者以帮助!再次感谢高手asftrhgjhkjlkttttttt !!!!