Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

求助...通用登录及权限管理系统把資料表放SQLSERVER 上出錯

KH Tse  发表于:2013-09-04 19:41:40  
复制

最近在学习红尘大师的通用登录及权限管理系统,

有个问题老搞不明白,请教一下.

我把TABLE: usysUsers, usysUse_Sub, usysRights转到SQL SERVER,

ODBC 连上運行...新用户注册时出现错误,但如果TABLE ACCESS 里面正常的.

 以下這段出錯了.

运行时错误’3134’ INSERT INTO 语句的语法错误


 strSQL = "INSERT INTO usysRights ( FFormID, FUserID ) SELECT FFormID, " & Me![FUserID] & " FROM usysForms"

    CurrentDb.Execute strSQL


如何解决呢? 把TABLE 放回ACCESS 里馬上正常了..

 Private Sub cmdOk_Click()
Dim strSQL As String

If Nz(Me.txtUserName) = "" Then
MsgBox "请胔?用户!", vbCritical, ""
Me.txtUserName.SetFocus
Exit Sub
End If

If Nz(Me.txtPassword) = "" Then
MsgBox "请胔?密码!", vbCritical, ""
Me.txtPassword.SetFocus
Exit Sub
End If

If Len(Me.txtPassword) < 6 Then
MsgBox "密码不能少於6位!", vbCritical, ""
Me.txtPassword.SetFocus
Exit Sub
End If

If Nz(Me.txtConfirmPwd) = "" Then
MsgBox "请胔?确认密码!", vbCritical, ""
Me.txtConfirmPwd.SetFocus
Exit Sub
End If

If Me.txtPassword <> Me.txtConfirmPwd Then
MsgBox "两次胔?的密码不符,请重新胔?!", vbCritical, ""
Me.txtPassword = ""
Me.txtConfirmPwd = ""
Me.txtPassword.SetFocus
Exit Sub
End If

If Nz(Me.cboPwdprompt) <> "" And Nz(Me.txtPromptAnswer) = "" Then
MsgBox "提示答案不能为空!", vbCritical, ""
Me.txtPromptAnswer.SetFocus
Exit Sub
End If
'将注册内?保存表用户表
If NewRecord = False Then DoCmd.RunCommand acCmdRecordsGoToNew
Me![FUserName] = Me.txtUserName
Me![FPassword] = RC4(Me.txtPassword) '密码加密后瞉保存
If Nz(Me.cboPwdprompt) <> "" Then Me![FPwdPrompt] = Me.cboPwdprompt
If Nz(Me.txtPromptAnswer) <> "" Then Me![FPromptAnswer] = RC4(Me.txtPromptAnswer)
DoCmd.Save
'加注册用户?限信息,所有窗伐?限都被设为默?值0(不许使用)
strSQL = "INSERT INTO usysRights ( FFormID, FUserID ) SELECT FFormID, " & Me![FUserID] & " FROM usysForms"
CurrentDb.Execute strSQL

If Err = 0 Then
MsgBox "注?成功!" & vbCrLf & "目前您??使用本系统中功能,请等待系统管理?批核!", vbInformation, ""
If FormIsLoaded("frmEntry") = True Then Forms("frmEntry")!cboUserName.Requery
DoCmd.Close
End If

End Sub

 

Top
cspa 发表于:2013-09-04 22:46:15

参见http://www.accessoft.com/article-show.asp?id=8618

 strSQL = "INSERT INTO usysRights ( FFormID, FUserID ) SELECT FFormID, " & Me![FUserID] & " FROM usysForms"中有 Me![FUserID] 类型参数,

不能用CurrentDb.Execute,试试用 DoCmd.RunSQL 



KH Tse 发表于:2013-09-05 09:36:07

感謝您快速回答...但為什麼如果TABLE ACCESS 里面正常的?如用 DoCmd.RunSQL..整句該怎麼改? 先謝啦_

我一步步試了一下..只要把TABLE: usysUsers 放到SQLSER就出錯了..因為找不到FuserID..所以加不進usysRights ..請教可以如何做?



KH Tse 发表于:2013-09-05 13:03:49
我用DoCmd.RunSQL 也不行..i資料TABLE:Usysuser_在ACCESS 里可以的,,搬去SQL SERVER 又不行了

KH Tse 发表于:2013-09-05 13:04:15
有個事真不明白.._里面_Me![FUserID] 哪有呢,怎麼也找不到,根本就沒這控件名稱
..我在ACCESS里正常運行時用
 MSGBOX Me![FUserID] 他真出刚注册者的ID
我不明白他怎麽会出来,是TABLE里面的字段如何_引用的?
..煩請大師指點___ 
___


总记录:4篇  页次:1/1 9 1 :