VB+ACESS
我用VB连接ACESS表(表名user)想做一个注册,一个id(long型,主键),一个用户名(username,字符型),一个密码(mima,字符型),当点击按钮时,判断表里是否有相同的用户名,如果有,则无法添加;如果没有,就添加一个记录。VB连接数据库已经成功!可是我如果仅仅写成:
Private Sub Command1_Click()
Data1.Recordset.AddNew
End Sub
可以添加,但无法判断是否有相同的用户名!跪求那位大侠给出源码!!!
Private Sub Command1_Click()
源码
End Sub万分感谢,我只想通过这样的一个例子了解VB+ACESS的语言应该怎么写!我以前用ASP.NET为平台,后台用C#,连接SQL数据库做过一些程序,可现在转VB之后,感觉完全是晕了!
我用VB连接ACESS表(表名user)想做一个注册,一个id(long型,主键),一个用户名(username,字符型),一个密码(mima,字符型),当点击按钮时,判断表里是否有相同的用户名,如果有,则无法添加;如果没有,就添加一个记录。VB连接数据库已经成功!可是我如果仅仅写成:
Private Sub Command1_Click()
Data1.Recordset.AddNew
End Sub
可以添加,但无法判断是否有相同的用户名!跪求那位大侠给出源码!!!
Private Sub Command1_Click()
源码
End Sub万分感谢,我只想通过这样的一个例子了解VB+ACESS的语言应该怎么写!我以前用ASP.NET为平台,后台用C#,连接SQL数据库做过一些程序,可现在转VB之后,感觉完全是晕了!
Private Sub Command1_Click()
dim objConn as adodb.connection
dim objRst as adodb.recordset
dim sSql as string
dim sConn as string sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test.mdb;Persist Security Info=False"
se objConn = new adodb.connection
objConn.open sConn
sSql = "select * from user where username ='" & sUserName & "'"
set objRst = new adodb.recordset
objRst.open sSql,objConn,1,3
if objRst.eof then
msgbox "该用户已经存在!"
end if
objRst.close
set objRst = nothing
objConn.close
set objConn = nothing
objRst
End Sub
objRst.open sSql,objConn,1,3
后面的1,3什么意思?
谢谢 谢谢
-----------------------------------
常数 常数值 说明
-----------------------------------
adOpenForwardOnly 0 缺省值,启动一个只能向前移动的游标(Forward Only)。
adOpenKeyset 1 启动一个Keyset类型的游标。
adOpenDynamic 2 启动一个Dynamic类型的游标。
adOpenStatic 3 启动一个Static类型的游标。
-----------------------------------
以上几个游标类型将直接影响到Recordset对象所有的属性和方法,以下列表说明他们之间的区别。 ---------------------------------------------
Recordset属性 adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic
---------------------------------------------
AbsolutePage 不支持 不支持 可读写 可读写
AbsolutePosition 不支持 不支持 可读写 可读写
ActiveConnection 可读写 可读写 可读写 可读写
BOF 只读 只读 只读 只读
Book 不支持 不支持 可读写 可读写
CacheSize 可读写 可读写 可读写 可读写
CursorLocation 可读写 可读写 可读写 可读写
CursorType 可读写 可读写 可读写 可读写
EditMode 只读 只读 只读 只读
EOF 只读 只读 只读 只读
Filter 可读写 可读写 可读写 可读写
LockType 可读写 可读写 可读写 可读写
MarshalOptions 可读写 可读写 可读写 可读写
MaxRecords 可读写 可读写 可读写 可读写
PageCount 不支持 不支持 只读 只读
PageSize 可读写 可读写 可读写 可读写
RecordCount 不支持 不支持 只读 只读
Source 可读写 可读写 可读写 可读写
State 只读 只读 只读 只读
Status 只读 只读 只读 只读
AddNew 支持 支持 支持 支持
CancelBatch 支持 支持 支持 支持
CancelUpdate 支持 支持 支持 支持
Clone 不支持 不支持
Close 支持 支持 支持 支持
Delete 支持 支持 支持 支持
GetRows 支持 支持 支持 支持
Move 不支持 支持 支持 支持
MoveFirst 支持 支持 支持 支持
MoveLast 不支持 支持 支持 支持
MoveNext 支持 支持 支持 支持
MovePrevious 不支持 支持 支持 支持
NextRecordset 支持 支持 支持 支持
Open 支持 支持 支持 支持
Requery 支持 支持 支持 支持
Resync 不支持 不支持 支持 支持
Supports 支持 支持 支持 支持
Update 支持 支持 支持 支持
UpdateBatch 支持 支持 支持 支持
----------------------------------------
其中NextRecordset方法并不适用于Microsoft Access数据库。 LockType
Recordset对象Open方法的LockType参数表示要采用的Lock类型,如果忽略这个参数,那么系统会以Recordset对象的LockType属性为预设值。LockType参数包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下: -----------------------------------
常数 常数值 说明
-----------------------------------
adLockReadOnly 1 缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法
adLockPrssimistic 2 当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。
adLockOptimistic 3 当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。
adLockBatchOptimistic 4 当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操作。=====定义数据库连接的一些常量
<%
Const adOpenForwardOnly = 0 '游标只向前浏览记录,不支持分页、Recordset、BookMark
Const adOpenKeyset = 1 '键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark
Const adOpenDynamic = 2 '动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览(ACCESS不支持)。
Const adOpenStatic = 3 '静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动Const adLockReadOnly = 1 '锁定类型,默认的,只读,不能作任何修改
Const adLockPessimistic = 2 '当编辑时立即锁定记录,最安全的方式
Const adLockOptimistic = 3 '只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等
Const adLockBatchOptimistic = 4 '当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的Const adCmdText = &H0001
Const adCmdTable = &H0002
%>
if not(objRst.eof) then
msgbox "该用户已经存在!"
end if2、要引用啊,工程->引用->MICROSOFR ACTIVEX DATA OBJECTS 2.6 LIBRALY
3、1,3是游标
这句报错: Form子句语法错误
现在这个程序可以运行了!但是,我还有两个问题:
1。sSql = "select * from [user] where username ='" & sUserName & "'"这个里面的'" & sUserName & "',为什么字段名前有个s,我认为是大哥的笔误。2。实际上,这个程序没有添加记录到数据库。
Private Sub Command1_Click()
dim objConn as adodb.connection
dim objRst as adodb.recordset
dim sSql as string
dim sConn as string
dim sUserName as string
dim sPassword as string
sUserName = trim(textbox1.text)
sPassword = trim(textbox2.text)
sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test.mdb;Persist Security Info=False"
se objConn = new adodb.connection
objConn.open sConn
sSql = "select * from [user] where username ='" & sUserName & "'"
set objRst = new adodb.recordset
objRst.open sSql,objConn,1,3
if not(objRst.eof) then
msgbox "该用户已经存在!"
textbox1.SetFocus
else
sSql = "insert into [user] (username,mima) values('" & sUserName & "','" & sPassword & "')"
objConn.execute sSql
end if
objRst.close
set objRst = nothing
objConn.close
set objConn = nothing
End Sub