设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3109|回复: 9
打印 上一主题 下一主题

[窗体] 最基本登录窗体 代码不知道怎么改 高手帮忙看看

[复制链接]
跳转到指定楼层
1#
发表于 2011-4-13 18:30:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Option Compare Database
Option Explicit

Private Sub Form_Load()
Me.UserName.SetFocus
Me.UserName = "11111"
Me.PassWord = "20070604"

End Sub


Private Sub 登录_Click()
On Error GoTo Err_登录_Click
Dim rs As New ADODB.Recordset
Dim str As String
Dim num As Integer
str = "select COUNT(Person.ID) from Person where Person.ID='" & Me.UserName
str = str & "'and Person .PassaWord='" & Me.PassWord & "'"
Set rs = GetRS(str)
num = rs(0)
If IsNull(Me.UserName) Then
MsgBox ("请输入用户名!!!")
ElseIf IsNull(Me.PassWord) Then
MsgBox ("请输入用户密码!!!")
ElseIf num <> 1 Then
MsgBox ("无此用户,或者密码错误!!!")
Else
Me.Visible = False
DoCmd.OpenForm "主窗体"
End If
exit_登录_Click:
  Exit Sub




End Sub
登录窗体代码 调试时显示 黑体字段出错 显示用户定义类型未定义 初学者 不太懂 请高手看看 谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-4-14 08:52:01 | 只看该作者
1、请留意有没有引用ADO组件。
2、这个字符串有误:str = str & "'and Person .PassaWord='" & Me.PassWord & "'"
应该在and 前面再加上一个空格。
3、Set rs = GetRS(str)应为自定义函数,由于没有附件,暂不调试。按俺的估计,应该是:
dim rs as new adobd.recordset
rs.open str,currentproject.connection,3,1
3#
发表于 2011-4-14 09:02:25 | 只看该作者
这样试试:
Private Sub 登录_Click()
    If Me.UserName = "" Or IsNull(Me.UserName) Then
        MsgBox "请输入用户名!!!"
        Me.UserName.SetFocus
    ElseIf Me.Password = "" Or IsNull(Me.Password) Then
        MsgBox "请输入用户密码!!!"
        Me.Password.SetFocus
    Else
        If IsNull(DLookup("[id]", "person", "[id]='" & Trim(Me.UserName) & "' AND [passWord]='" & Trim(Me.Password) & "'")) Then
            MsgBox "无此用户,或者密码错误!!!", vbCritical
        Else
            Me.Visible = False
            DoCmd.OpenForm "主窗体"
        End If
    End If
End Sub
4#
发表于 2011-4-14 09:04:21 | 只看该作者
还有, 字段命名最好不要用"password"这类ACCESS的关键字或内建变量, 有时会出错的, 窗体的控件名也是
5#
 楼主| 发表于 2011-4-14 11:22:47 | 只看该作者
回复 zyp 的帖子

非常感谢,代码没问题,还是运行不了,点击登陆无反应,我用户名和密码两个文本框都无任何设置,是不是这个问题,具体不知道怎么弄。
6#
发表于 2011-4-14 11:29:15 | 只看该作者
本帖最后由 todaynew 于 2011-4-14 11:36 编辑
powerhao 发表于 2011-4-13 18:30
Option Compare Database
Option Explicit


在引用中勾选ADO引用,方法是:VBa编辑视图主菜单--工具--引用,找到Microsoft ActiveX Date Objects 2.1 Library勾选、确定之。
不想做以上工作,则可按三楼zyp同志代码执行。
7#
 楼主| 发表于 2011-4-14 11:34:05 | 只看该作者
回复 todaynew 的帖子

谢谢TODAYNEW。还是无法运行,我的用户名和密码两个文本框都无设置,估计是那个问题,具体不知道咋弄
8#
发表于 2011-4-14 11:37:34 | 只看该作者
powerhao 发表于 2011-4-14 11:34
回复 todaynew 的帖子

谢谢TODAYNEW。还是无法运行,我的用户名和密码两个文本框都无设置,估计是那个问题 ...

上传实例
9#
发表于 2011-4-14 18:13:55 | 只看该作者
powerhao 发表于 2011-4-14 11:34
回复 todaynew 的帖子

谢谢TODAYNEW。还是无法运行,我的用户名和密码两个文本框都无设置,估计是那个问题 ...

有没有将password字段和窗体上的password文本框  这两个都改一下名称试试
10#
发表于 2011-4-14 18:25:13 | 只看该作者
Private Sub Command9_Click()
     '定义 connection 对象
     Dim cn As ADODB.Connection
     '定义 recordset 对象


     Dim Rs As New ADODB.Recordset
     Dim username As String
     Dim userpass As String
     Dim sql As String
     '使用access内置 connection对象
     Set cn = CurrentProject.Connection
     Text1.SetFocus
     username = Text1.Text
     Text3.SetFocus
     userpass = Text3.Value
     sql = "select*from 用户表 where 用户名 ='" & username & " 'and 密码 = '" & userpass & "'"
     Debug.Print sql
      Rs.Open sql, cn
     If Rs.EOF Then
           MsgBox "登录失败!再来"
           Text1.SetFocus
           Text1.Text = ""
           Text3.SetFocus
           Text3.Text = ""
    Else
           DoCmd.Close
           DoCmd.OpenForm "主界面"
           MsgBox "我靠!登录成功"
    End If
    '关闭 recodset 对象和connection对象并释放内存资源
    Rs.Close
    cn.Close
    Set Rs = Nothing
End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-6 02:52 , Processed in 0.121492 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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