关于access2010创建账户密码登陆框
2012-04-04 10:56匿名 | 分类:数据库DB | 浏览1545
按照access2007教程做了个有密码的登陆框但是无法运行弹出错误调试什么的
以下是教程代码:

If IsNull(Me.管理用户) Then
        MsgBox "请输入管理用户的帐号!", vbQuestion
        Exit Sub
    End If
    If IsNull(Me.登录密码) Then
        MsgBox "请输入管理用户的登录密码!", vbQuestion
        Exit Sub
    End If
    If adlogin = True Then
        DoCmd.Close acForm, Me.Name
        DoCmd.OpenForm "职员考勤主界面"
    Else
        MsgBox " 管理用户帐号或密码错误,请重新输入! ", vbCritical
        Exit Sub
    End If

Public Function adlogin() As Boolean
    Dim str As Database
    Dim rs
    Set str = CurrentDb
    Set rs = str.OpenRecordset("select 管理用户,登录密码 from 管理员信息 where 管理用户= '" & Me.管理用 & "' and 登录密码='" & Me.登录密 & "'")
    If Not rs.EOF Then
      If rs.Fields("登录密码") = Me.登录密码 Then adlogin = True
    End If
End Function

If MsgBox("  您是否确定退出本系统  [ ]   [ ]     ", vbQuestion + vbYesNo) = vbYes Then
        DoCmd.Quit acQuitSaveAll
    End If
--------------------------------------分割线------------------------------
错误行:
    Set rs = str.OpenRecordset("select 管理用户,登录密码 from 管理员信息 where 管理用户= '" & Me.管理用 & "' and 登录密码='" & Me.登录密 & "'")

重复做了3变还是有错  不知道是怎么回
分享到
2012-04-10 10:17提问者采纳
你是不是做得太麻烦了;ACCESS还不好解决,你直接给窗体指  用户表做数据源
Private Sub 登陆_Click()
If Trim(用户名) = Me.用户名 And Trim(密码) = Me.密码 Then
DoCmd.Close
DoCmd.OpenForm ("职员考勤主界面")
Else: MSGBOX("错误提示")
      Me.SetFocus
      Me.用户名= ""
      Me.密码 = ""
End If
End Sub

你别把自己搞糊涂了,没有哪个动作去调用函数查数据源,都没查到数据源怎么判断,很简单的问题别想太复杂了,如果你觉得不该用窗体数据源access数据库用什么软件,那你就定义一个连接吧,呼叫连接一样的效果,消息对话框随你怎么写.还有,你存在一个根本性的错误:你定义的不是窗体数据源,怎么用窗
体去筛选,那就判断数据连接是否查询到了记录就行了,而不是判断窗体控件是否为NULL.有两个办法,1.判断查询有没有记录来决定登陆事件2.给控件指定到数据源,判断控件是否为空查询.改一下思路,很简单
评论(2) | 1 
各种 trim 函数的语法如下
LTRIM(字串):将字串左边的空格移除
RTRIM(字串): 将字串右边的空格移除
TRIM(字串): 将字串首尾两端的空格移除,作用等于RTRIMLTRIM两个函数共同的结果
ALLTRIM(字串):将字串左右边两边的空格移除
1
TRIM(' Sample ');
结果:
'Sample'
2:
LTRIM(' Sample ');
结果:
'Sample '
3:
? RTRIM(' Sample ');
结果:
' Sample'
ALLTRIM(" Sample ")
结果
"Sample"

CurrentDb.OpenRecordset是什么意思
2010-08-09 14:09 提问者悬赏:20 | opwquiwq | 分类:VB | 浏览3754
分享到
2010-08-18 02:30网友采纳
CurrentDb是你的数据库对象
OpenRecordset是打开结果集的意思。打个比方,Set RS=CurrentDB.OpenRecordset("麻烦服务器帮我查下AAAA数据表里2003年以前的所有记录") 'SQL语句翻译:"Select * From AAAA Where dDate<'2003-1-1'"
服务器查询后,也许查到了20条记录,把结果返回、装在了RS里,RS里存的就是结果集数据,RS就是结果集类型(Recordset
其他1条回答
2010-08-09 14:23远风的梦想家   | 十二
一般用法是set rs = cureentdb.openrecordset(....)是用来打开一个记录集的
简单的VB代码.....
2011-06-29 20:43wr394708958 | 分类:VB | 浏览248
Dim str As Database
    Dim rs
    Set str = CurrentDb
    Set rs = str.OpenRecordset("select 管理用户,登录密码 from 管理员信息 where 管理用户= '" & Me.管理用 & "' and 登录密码='" & Me.登录密 & "'")    【显示这句错误438,对象不支持改属性和方法】
    If Not rs.EOF Then
      If rs.Fields("登录密码") = Me.登录密码 Then adlogin = True
    End If
End Function
分享到
2011-06-29 22:17提问者采纳
Function opentable(byval txtPath as string) '【功能:建立数据库连接;状态:完成】
Set conn = New ADODB.Connection
conn.CursorLocation = adUseClient
conn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & txtPath & ";"
Set res = New ADODB.Recordset
End Function
Function closetable() '【功能:关闭数据库连接;状态:完成】
conn.Close
End Function

set res=dset
res.Open "select 管理用户,登录密码 from 管理员信息 where 管理用户= '" & Me.管理用 & "' and 登录密码='" & Me.登录密 & "'"
If Not res.EOF Then
      If rs.Fields("登录密码") = Me.登录密码 Then adlogin = True
    End If
终于能编译过去了。。太谢谢了。。可是它提示用户和密码不对,请你再帮我看看,我没有什么基础。。....
上面那段代码我不需要再自己改动什么地方了吗
上面那段不需要再改动。
哪里提示用户和密码不对?如果可行的话,你把工程文件全部打包发给我(379650356@qq.
com
出于保密需求的话,你至少把这一段发完整……好吗
提问者评
谢了,我已经解决了~
评论 | 0 0
sunruisunrui | 来自团队 永霸天下 | 十级 采纳率40%
擅长: VB 数据库DB C#/.NET Windows 欧美明星
Access的问题,请大家帮我
2012-04-16 15:58rensiming1 | 分类:数据库DB | 浏览86
Option Compare Database

Private Sub 登陆_Click()
If IsNull(Me.请输入用户名) Then
  MsgBox "请输入用户名", vbQuestion
  Exit Sub
End If
If IsNull(Me.输入用户密码) Then
  MsgBox "请输入密码", vbQuestion
  Exit Sub
End If
If adlogin = True Then
DoCmd.Close acForm, Me.Name
DoCmd.OpenForm "管理窗体"
Else
MsgBox "管理员或密码错误,请重新输入!", vbCritical
Exit Sub
End If

End Sub
Public Function adlogin() As Boolean
Dim str As Database
    Dim rs As Recordset
    Set str = CurrentDb
    Set rs = str.OpenRecordset("select 管理员姓名,管理员密码 from 管理员 where 管理员姓名='" & Me.请输入用户名 & "" And 管理员密码 = "" & Me.输入用户密码 & "'")
    If Not rs.EOF Then
If rs.Fields("管理员密码") = Me.输入用户密码 Then adlogin = True
    End If
End Function
这个在运行时显示运行时错误‘13’类型不匹配
分享到
2012-04-19 12:06提问者采纳
& "" And 管理员密码 = "" &  错误,要改成:& "' And 管理员密码 = '" &,即表达式计算后其值是字符串的要用 ' 而非 " 。头尾用对了(where 管理员姓名='" Me.输入用户密码 & "'"用对了)
,中间用错了!另外如果密码是数字,则后面的两个 ' 要去掉!
提问者评
谢谢你,在你的帮助下,我成功了
评论 | 1 0
qyx7137 | 四级 采纳率66%
擅长: 系统软件 数据库DB 财务税务 保险 股票
按默认排序 | 按时间排序
其他1条回答
2012-04-17 21:28feifei20080 | 
If rs.Fields("管理员密码") = Me.输入用户密码 Then adlogin = True
    应该是这句话。把程序给我我帮你看吧
评论 | 0 0
等待您来回答
怎样在access窗体加载时就使一个文本框取得焦点?
2012-08-14 16:56fyx1204 | 分类:数据库DB | 浏览279
分享到
2012-08-14 18:51提问者采纳
在加载事件中输入文本框获得焦点,如下:
Private Sub Form_Load()
Me.文本框名.SetFocus
End Sub
在Access数据库窗体中怎么实现一个文本框中输入内容,在另一个文本框中显示根本刚才输入的内容,显示出结
2013-05-30 15:23 提问者悬赏:30 | 魑魅魍魉魂魄瑰 | 分类:数据库DB | 浏览352
有个    年龄
我有2个文本框姓名”“年龄

我想输入姓名后,年龄那个文本框直接出结果。

不太会弄,请指教一下。谢谢了
分享到
2013-05-30 15:54网友采纳
年龄文本框,设置其数据来源:
=dlookup("[年龄字段名称]","[表名]","姓名='" & me.[姓名文本框名称] & "'")

以上[ ]中的名称都改为你自己的实际名称,祝你成功

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。