佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1770|回复: 25

VB link Database(MS Access) 初学--解决了!希望会VB的,进来讨论讨论。

[复制链接]
发表于 22-11-2005 01:49 AM | 显示全部楼层 |阅读模式
如题,希望各位能帮帮忙,教教我。

我是VB新手,现在要搞Assignment,可是。。。
关于link database一事全无头绪。
手头上有本《Programming in Visual Basic 6.0》,已在网上找了很多E-book,但还是不明白。
找不到咧子。

我现在面对的问题是。。。

User enter user id and password。Then我要read database里的table,拿出和那个user id有关的data。
Example:

User ID: E0001
Password:******

逻辑上应该是Find Employee_ID,然后compare,对吗?

所有data都是在同一个table的。
Table name: Employee
Property:Employee_ID,Employee_Name,Employee_Password

用adoc1.Recordset.Find?
谁可以解释recordset是什么吗?

拜托了。。。

我不懂,不是因为我没听课,不是我没温书,
是Lecturer还没教。

[ 本帖最后由 杨大侠 于 24-11-2005 12:37 AM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 23-11-2005 12:27 AM | 显示全部楼层
没人懂吗?

我搞几天了,还是搞不到。
有ERROR。

唉。。。

回复

使用道具 举报

发表于 23-11-2005 09:41 AM | 显示全部楼层
你起码得把你的 error message 还有 code 放上来, 那么大家才知道怎么帮你呀.
回复

使用道具 举报

发表于 23-11-2005 09:51 AM | 显示全部楼层
楼主用ADODC吗。。???
要先把DATABASE TABLE LINK进ADODC先
然后你可要用compare 可以用ADODC.recordset.field("Employee_ID") = user_id
然后check的时候可以: if adodc.recordset.eof = true then (代表没有这ID)

不然的话可以用:adodc.recordsource = <<SQL STATEMENT>>
然后CHECK。。。!!!
回复

使用道具 举报

 楼主| 发表于 23-11-2005 12:00 PM | 显示全部楼层
这是我的source code。

Private Sub cmdLogin_Click()

Dim str_password As String
Dim str_ID As String
Dim passwor As String
Dim ID As String

str_ID = txtID.Text
str_password = txtPassword.Text

If str_ID = "" Or str_password = "" Then
   MsgBox "Please key in the following fields, if you wish to procede to next page.", vbOKOnly, "Alert"
End If

dbMetrojaya.Recordset.MoveFirst

Do Until dbMetrojaya.Recordset.EOF
    If dbMetrojaya.Recordset.Fields(Employee_ID).Value = str_ID And formPassword.dbMetrojaya.Recordset.Fields(Password).Value = str_password Then
        formContent.Visible = True
        Unload formPassword
    Else
        dbMetrojaya.Recordset.MoveNext
End If
Loop
End Sub
回复

使用道具 举报

 楼主| 发表于 23-11-2005 12:04 PM | 显示全部楼层
原帖由 brian29002001 于 23-11-2005 09:51 AM 发表
楼主用ADODC吗。。???
要先把DATABASE TABLE LINK进ADODC先
然后你可要用compare 可以用ADODC.recordset.field("Employee_ID") = user_id
然后check的时候可以: if adodc.recordset.eof = true t ...


Link database。
是ADODC properties吗?
我build了,record sourse也set了,command type是adCmdTable,Table也set了。

到底我少了什么?
回复

使用道具 举报

Follow Us
 楼主| 发表于 23-11-2005 12:06 PM | 显示全部楼层
原帖由 goatstudio 于 23-11-2005 09:41 AM 发表
你起码得把你的 error message 还有 code 放上来, 那么大家才知道怎么帮你呀.


Run-time error '91':
Object variable or with block variable not set

请问是什么意思?
回复

使用道具 举报

 楼主| 发表于 23-11-2005 04:27 PM | 显示全部楼层
大家都很忙吗?
怎么都没有人回我呢?

我一直不停的在这里refresh来refresh去。

还是我的问题很难?
稍微会VB的人不应该都懂吗?

怪怪的。
回复

使用道具 举报


ADVERTISEMENT

发表于 23-11-2005 05:32 PM | 显示全部楼层
原帖由 杨大侠 于 23-11-2005 04:27 PM 发表
大家都很忙吗?
怎么都没有人回我呢?

我一直不停的在这里refresh来refresh去。

还是我的问题很难?
稍微会VB的人不应该都懂吗?

怪怪的。


难如登天,因为你给的资料不完整。

首先,你并没有POST上完整的CODING。
第二,你有POST上ERROR MESSAGE,但你并没有说明是哪里出ERROR。如果我们随便给你一个错的决解方式,那对你也没好处,对吗?
回复

使用道具 举报

 楼主| 发表于 23-11-2005 06:00 PM | 显示全部楼层
原帖由 meemee 于 23-11-2005 05:32 PM 发表


难如登天,因为你给的资料不完整。

首先,你并没有POST上完整的CODING。
第二,你有POST上ERROR MESSAGE,但你并没有说明是哪里出ERROR。如果我们随便给你一个错的决解方式,那对你也没好处,对吗?


这是我的source code。(全部了)

Private Sub cmdLogin_Click()

Dim str_password As String
Dim str_ID As String
Dim passwor As String
Dim ID As String

str_ID = txtID.Text
str_password = txtPassword.Text

If str_ID = "" Or str_password = "" Then
   MsgBox "Please key in the following fields, if you wish to procede to next page.", vbOKOnly, "Alert"
End If

dbMetrojaya.Recordset.MoveFirst(按debug过后,这行有ERROR)(下面的我就不知道)

Do Until dbMetrojaya.Recordset.EOF
    If dbMetrojaya.Recordset.Fields(Employee_ID).Value = str_ID And formPassword.dbMetrojaya.Recordset.Fields(Password).Value = str_password Then
        formContent.Visible = True
        Unload formPassword
    Else
        dbMetrojaya.Recordset.MoveNext
End If
Loop
End Sub

我给的资料还不够完整吗?
对不起喽~
不过能给的,我都给了。
还缺什么?
回复

使用道具 举报

 楼主| 发表于 24-11-2005 12:29 AM | 显示全部楼层
新的CODE

Private Sub cmdLogin_Click()

Dim str_password As String * 6
Dim str_ID As String * 5
Dim passwor As String * 6
Dim ID As String * 5

str_ID = txtID.Text
str_password = txtPassword.Text

If txtID.Text = "" Or txtPassword.Text = "" Then
   MsgBox "Please key in the following fields, if you wish to procede to next page.", vbOKOnly, "Alert"
End If

formPassword.dbMetrojaya.Refresh

Do Until formPassword.dbMetrojaya.Recordset.EOF
    If formPassword.dbMetrojaya.Recordset.Fields("Employee_ID").Value = str_ID And formPassword.dbMetrojaya.Recordset.Fields("Password").Value = str_password Then
        formContent.Visible = True
        Unload formPassword
        Exit Sub
    Else
        formPassword.dbMetrojaya.Recordset.MoveNext
    End If
Loop
End Sub
回复

使用道具 举报

 楼主| 发表于 24-11-2005 12:35 AM | 显示全部楼层
问题解决了。。。
coding没有错,只是。。。

原来,link database拿data是要有条件的。

除了build connection string,set record sorce,。。。
还要在form里加一个textbox,link database里的data。
这个textbox只是纯粹加上去的。
记得textbox要set visible false。
因为这个textbox对我们的interface没有功用。

回复

使用道具 举报

 楼主| 发表于 24-11-2005 12:43 AM | 显示全部楼层
我只是猜测罢了。

真的希望有VB高手,讲解讲解。
让晚辈们了解了解。

开这帖三天了,回复的人数比我预算中差很多。
是没人懂?仰或使大家都没空?
还是???

这论坛给我的感觉越来越不好了。
是我多心?
还是什么?

回复

使用道具 举报

发表于 24-11-2005 02:45 AM | 显示全部楼层
去这个网站找一些做好了的程式,然后研究他们怎么写。
http://www.a1vbcode.com/
回复

使用道具 举报

发表于 24-11-2005 08:54 AM | 显示全部楼层
link database要加text box 的吗?
怎么我都不用的?

杨大侠,
抱歉,我的VB都几乎忘了,也没有时间re-call来帮你
不过我记得,我link database是没有用到什么text box的

去参考别人的方法吧。。。
回复

使用道具 举报

发表于 24-11-2005 09:15 AM | 显示全部楼层
原帖由 杨大侠 于 24-11-2005 12:43 AM 发表
我只是猜测罢了。

真的希望有VB高手,讲解讲解。
让晚辈们了解了解。

开这帖三天了,回复的人数比我预算中差很多。
是没人懂?仰或使大家都没空?
还是???

这论坛给我的感觉越来越不好了。
是我多 ...


首先... 建议你的语气应该先放暖...
这里的人都有工作和家庭... 并不是常挂在这里解答呢.

第二... 你自己可以看到了...
你当初没有提供任何 code, 也没有 error message,
即使后来有了, 也不完整... 这叫别人怎么帮你呢?

另外... 我到现在还不知道你的解决方法是什么...
我对你的问题现在更感到一头雾水...

看着你的 code, 我只能说, 建议你用 ADODB 来解决你的问题. 好些东西都没说清楚从那里来的, 例如 dbMetrojaya.
用 ADODB, 你可以直接写 sql 来比较 id 和 password.

你可以去参考相关的资料. www.freevbcode.com 是不错的开始.
回复

使用道具 举报


ADVERTISEMENT

发表于 24-11-2005 09:46 AM | 显示全部楼层
原帖由 杨大侠 于 24-11-2005 12:43 AM 发表
我只是猜测罢了。

开这帖三天了,回复的人数比我预算中差很多。
是没人懂?仰或使大家都没空?
还是???

这论坛给我的感觉越来越不好了。
是我多 ...


我的电脑坏了! 快来帮我修!
>你的电脑在哪里?
>电脑哪里出问题了?
为什么没人帮我修电脑?
>。。。
噢。。。我的电脑在。。。我家里
>。。。
我知道出了什么问题了,记得要ON POWER 然后电脑荧幕朝向北方就可以了
这样简单的问题都你们不。。。

>???!!! 。。。
>。。。!!。。。
回复

使用道具 举报

发表于 24-11-2005 09:51 AM | 显示全部楼层
http://www.1vbstreet.com/ 去跑跑吧

不然就用 SEARCH ENGINE 吧
搞 IT 的,学 IT 的第一步就是要学会用 GOOGLE
回复

使用道具 举报

 楼主| 发表于 24-11-2005 06:29 PM | 显示全部楼层
这是我的interface。



一下四个是visible true的component:
form name =formPassword
textbox(ID) name=txtID
textbox(password)=txtPassword
Login button name=cmdLogin

还有两个visible false的:
adodc name=dbmetrojaya
textbox(就是那个我说多加下去的)name=text1

[ 本帖最后由 杨大侠 于 24-11-2005 06:34 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 24-11-2005 06:43 PM | 显示全部楼层
CODE:

Private Sub cmdLogin_Click()

Dim str_password As String
Dim str_ID As String

str_ID = txtID.Text
str_password = txtPassword.Text

If txtID.Text = "" Or txtPassword.Text = "" Then
   MsgBox "Please key in the following fields, if you wish to procede to next page.", vbOKOnly, "Alert"
End If

formPassword.dbMetrojaya.Refresh

Do Until formPassword.dbMetrojaya.Recordset.EOF
    If formPassword.dbMetrojaya.Recordset.Fields("Employee_ID").Value = str_ID And formPassword.dbMetrojaya.Recordset.Fields("Password").Value = str_password Then
        formContent.Visible = True
        Unload formPassword
        Exit Sub
    Else
        formPassword.dbMetrojaya.Recordset.MoveNext
    End If
Loop
End Sub

[ 本帖最后由 杨大侠 于 24-11-2005 06:46 PM 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 14-11-2024 02:56 PM , Processed in 0.145593 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表