Private Sub cmdOK_Click()'以下是用来验证身份用的在frmlogin里'以下用来联接数据源 Dim txtSQL As String Dim ConnectString As String Dim conn As ADODB.Connection Set conn = New ADODB.Connection Dim sstr As ADODB.Recordset Set sstr = New ADODB.Recordset ConnectString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=home" conn.Open ConnectString '以下代码下来验证登陆 UserName = "" If Trim(txtUserName.Text = "") Then MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告" txtUserName.SetFocus Else txtSQL = "select * from 工作人员信息表 where 姓名 = '" & txtUserName.Text & "'" sstr.Open txtSQL, conn, adOpenStatic, adLockOptimistic WorkerID = sstr.Fields(0) WorkerName = sstr.Fields(4) WorkerPower = sstr.Fields(6) SystemID = sstr.Fields(1) If sstr.EOF Then MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告" txtUserName.SetFocus Else If Trim(sstr.Fields("密码")) = Trim(txtPassword.Text) Then Select Case sstr.Fields("权限级别") Case 0 Load frmSystemMain frmSystemMain.Show End Select OK = True sstr.Close Me.Hide UserName = Trim(txtUserName.Text) Else MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告" txtPassword.SetFocus txtPassword.Text = "" End If End If End If
miCount = miCount + 1 If miCount = 3 Then Me.Hide End If Exit Sub conn.Close rs.Close Set conn = Nothing Set rs = Nothing End Sub—————————————————————————————————————————— 以下代码是主窗口frmsystemmain的toolbar事件,第四个按钮为锁住按钮。Private Sub tblSystem_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case UCase(Button.Index) Case 1 frmSystem.Show Case 2 frmData.Show Case 3 frmWorker.Show Case 4 Dim conn1 As ADODB.Connection Dim rs1 As ADODB.Recordset Set conn1 = New ADODB.Connection Dim ConnString As String ConnString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=hospital" txtSQL = "insert into 日志表 (工作人员ID,姓名,账号,访问内容,锁定系统时间) values('" & CStr(WorkerID) & "','" & CStr(WorkerName) & "','" & CStr(SystemID) & "',"您访问的是系统管理页面!","&now()&")" conn.execute(txtSQL) tblSystem.Buttons(1).Enabled = False tblSystem.Buttons(2).Enabled = False tblSystem.Buttons(3).Enabled = False tblSystem.Buttons(5).Enabled = False tblSystem.Buttons(6).Enabled = False tblSystem.Buttons(7).Enabled = False frmLogin.Show Case 5 frmPrint.Show Case 6 frmHelp.Show Case 7 End End Select End Sub —————————————————— 其中运行时提示INSERT语句中的values处有错, 什么第一行‘8’ 不知是什么意思! —————————————————————————————————————————— 以上是不能重新调出主窗口的问题,这是我的第一个工程,,请多多帮忙 ——————————————————————————————————————————————————————Private Sub cmdAdd_Click() dgWorker.AllowAddNew = True dgWorker.AllowUpdate = True Dim txtSQL As String txtSQL = "select * from 工作人员信息表" adoWorker.RecordSource = txtSQL adoWorker.RefreshEnd SubPrivate Sub cmdDelete_Click() '删除用户指定行。 Dim txtSQL As String dgWorker.AllowDelete = True dgWorker.SelBooks.Remove (dgWorker.Row) adoWorker.RecordSource = txtSQL End SubPrivate Sub cmdExit_Click() '退出系统 Unload Me End SubPrivate Sub cmdSeek_Click() '用来查询工作人员的相关资料,查询条件是工作人员ID号和姓名。 Dim txtSQL As String dgWorker.AllowAddNew = False dgWorker.AllowDelete = False dgWorker.AllowUpdate = False If (Trim(txtWorkerID(0).Text) = "" And Trim(txtWorkerName.Text) = "") Then MsgBox "必须要输入查询条件!", vbOKOnly + vbExclamation, "警告" Else If Trim(txtWorkerID(0).Text) = "" Then txtSQL = "select * from 工作人员信息表 where 姓名 like '" & Trim(txtWorkerName.Text) & "'" adoWorker.RecordSource = txtSQL adoWorker.Refresh If adoWorker.Recordset.BOF Then MsgBox "没有此人的记录,请确认!", vbOKOnly + vbExclamation, "警告" End If Else If Trim(txtWorkerName.Text) = "" Then txtSQL = "select * from 工作人员信息表 where 工作人员ID like '" & Trim(txtWorkerID(0).Text) & "'" adoWorker.RecordSource = txtSQL adoWorker.Refresh If adoWorker.Recordset.BOF Then MsgBox "没有此人的记录,请确认!", vbOKOnly + vbExclamation, "警告" End If Else txtSQL = "select * from 工作人员信息表 where 工作人员ID like '" & Trim(txtWorkerID(0).Text) & "' and 姓名 like '" & Trim(txtWorkerName.Text) & "'" adoWorker.RecordSource = txtSQL adoWorker.Refresh If adoWorker.Recordset.BOF Then MsgBox "没有此人的记录,请确认!", vbOKOnly + vbExclamation, "警告" End If End If End If End If End SubPrivate Sub cmdShow_Click() '显示所有记录 Dim txtSQL As String dgWorker.AllowAddNew = False dgWorker.AllowDelete = False dgWorker.AllowUpdate = False txtSQL = "select * from 工作人员信息表" adoWorker.RecordSource = txtSQL adoWorker.Refresh End SubPrivate Sub cmdUpdate_Click() dgWorker.AllowUpdate = True End SubPrivate Sub dgWorker_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu pop End If End SubPrivate Sub Form_Load() cblSex.AddItem ("男") cblSex.AddItem ("女") dgWorker.AllowAddNew = False dgWorker.AllowDelete = False dgWorker.AllowUpdate = False tvPerson.Nodes.Add , , "ROOT", "所有工作人员", ImageList1.ListImages(1).Index
arry1 = Array("系统管理员", "专家", "工作人员", "部门经理", "财务人员") For Index = 0 To 4 tvPerson.Nodes.Add "ROOT", tvwChild, , arry1(Index), ImageList1.ListImages(Index + 1).Index Next End SubPrivate Sub mnuaddnew_Click() dgWorker.AllowAddNew = True dgWorker.AllowDelete = False dgWorker.AllowUpdate = TrueEnd SubPrivate Sub tvPerson_Click() Dim newnode As Node Dim IndexSet newnode = tvPerson.SelectedItemSelect Case newnode.Text Case "所有工作人员" txtSQL = "select * from 工作人员信息表 " adoWorker.RecordSource = txtSQL adoWorker.Refresh
Case "专家" txtSQL = "select * from 工作人员信息表 where 权限级别=1" adoWorker.RecordSource = txtSQL adoWorker.Refresh
Case "工作人员" txtSQL = "select * from 工作人员信息表 where 权限级别=2" adoWorker.RecordSource = txtSQL adoWorker.Refresh
Case "部门经理" txtSQL = "select * from 工作人员信息表 where 权限级别=3" adoWorker.RecordSource = txtSQL adoWorker.Refresh
Case "财务经理" txtSQL = "select * from 工作人员信息表 where 权限级别=4" adoWorker.RecordSource = txtSQL adoWorker.Refresh
Case "系统管理员"
txtSQL = "select * from 工作人员信息表 where 权限级别=0" adoWorker.RecordSource = txtSQL adoWorker.Refresh
End SelectEnd Sub ———————————————————————————————————— 以上是这个窗口的主代码,就是刷新问题。
我在使用datagrid和ado+sqlserver
为什么我总是在选择更新了以后。
如果不去增加或者显示的话。
就会写进数据库里。
相反就会写不进去?
这是为什么呢
我用了先锁住了其它所有的键的方法,
但是重新弹出对话框时登陆时的判断都对。
但是进不去主窗口。
是不是因为我调用的次序不对呢?
我调用的次序是登陆框里用show方法调出主窗口。
这种问题该如何解决呢》?
有时间帮我解决一些。
Dim txtSQL As String
Dim ConnectString As String
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
Dim sstr As ADODB.Recordset
Set sstr = New ADODB.Recordset
ConnectString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=home"
conn.Open ConnectString '以下代码下来验证登陆
UserName = ""
If Trim(txtUserName.Text = "") Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtUserName.SetFocus
Else
txtSQL = "select * from 工作人员信息表 where 姓名 = '" & txtUserName.Text & "'"
sstr.Open txtSQL, conn, adOpenStatic, adLockOptimistic
WorkerID = sstr.Fields(0)
WorkerName = sstr.Fields(4)
WorkerPower = sstr.Fields(6)
SystemID = sstr.Fields(1)
If sstr.EOF Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtUserName.SetFocus
Else
If Trim(sstr.Fields("密码")) = Trim(txtPassword.Text) Then
Select Case sstr.Fields("权限级别")
Case 0
Load frmSystemMain
frmSystemMain.Show
End Select
OK = True
sstr.Close
Me.Hide
UserName = Trim(txtUserName.Text)
Else
MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
txtPassword.SetFocus
txtPassword.Text = ""
End If
End If
End If
miCount = miCount + 1
If miCount = 3 Then
Me.Hide
End If
Exit Sub
conn.Close
rs.Close
Set conn = Nothing
Set rs = Nothing
End Sub——————————————————————————————————————————
以下代码是主窗口frmsystemmain的toolbar事件,第四个按钮为锁住按钮。Private Sub tblSystem_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case UCase(Button.Index)
Case 1
frmSystem.Show
Case 2
frmData.Show
Case 3
frmWorker.Show
Case 4
Dim conn1 As ADODB.Connection
Dim rs1 As ADODB.Recordset
Set conn1 = New ADODB.Connection
Dim ConnString As String
ConnString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=hospital"
txtSQL = "insert into 日志表 (工作人员ID,姓名,账号,访问内容,锁定系统时间) values('" & CStr(WorkerID) & "','" & CStr(WorkerName) & "','" & CStr(SystemID) & "',"您访问的是系统管理页面!","&now()&")"
conn.execute(txtSQL)
tblSystem.Buttons(1).Enabled = False
tblSystem.Buttons(2).Enabled = False
tblSystem.Buttons(3).Enabled = False
tblSystem.Buttons(5).Enabled = False
tblSystem.Buttons(6).Enabled = False
tblSystem.Buttons(7).Enabled = False
frmLogin.Show
Case 5
frmPrint.Show
Case 6
frmHelp.Show
Case 7
End
End Select
End Sub
——————————————————
其中运行时提示INSERT语句中的values处有错,
什么第一行‘8’
不知是什么意思!
——————————————————————————————————————————
以上是不能重新调出主窗口的问题,这是我的第一个工程,,请多多帮忙
——————————————————————————————————————————————————————Private Sub cmdAdd_Click()
dgWorker.AllowAddNew = True
dgWorker.AllowUpdate = True
Dim txtSQL As String
txtSQL = "select * from 工作人员信息表"
adoWorker.RecordSource = txtSQL
adoWorker.RefreshEnd SubPrivate Sub cmdDelete_Click() '删除用户指定行。
Dim txtSQL As String
dgWorker.AllowDelete = True
dgWorker.SelBooks.Remove (dgWorker.Row)
adoWorker.RecordSource = txtSQL
End SubPrivate Sub cmdExit_Click() '退出系统
Unload Me
End SubPrivate Sub cmdSeek_Click() '用来查询工作人员的相关资料,查询条件是工作人员ID号和姓名。
Dim txtSQL As String
dgWorker.AllowAddNew = False
dgWorker.AllowDelete = False
dgWorker.AllowUpdate = False
If (Trim(txtWorkerID(0).Text) = "" And Trim(txtWorkerName.Text) = "") Then
MsgBox "必须要输入查询条件!", vbOKOnly + vbExclamation, "警告"
Else
If Trim(txtWorkerID(0).Text) = "" Then
txtSQL = "select * from 工作人员信息表 where 姓名 like '" & Trim(txtWorkerName.Text) & "'"
adoWorker.RecordSource = txtSQL
adoWorker.Refresh
If adoWorker.Recordset.BOF Then
MsgBox "没有此人的记录,请确认!", vbOKOnly + vbExclamation, "警告"
End If
Else
If Trim(txtWorkerName.Text) = "" Then
txtSQL = "select * from 工作人员信息表 where 工作人员ID like '" & Trim(txtWorkerID(0).Text) & "'"
adoWorker.RecordSource = txtSQL
adoWorker.Refresh
If adoWorker.Recordset.BOF Then
MsgBox "没有此人的记录,请确认!", vbOKOnly + vbExclamation, "警告"
End If
Else
txtSQL = "select * from 工作人员信息表 where 工作人员ID like '" & Trim(txtWorkerID(0).Text) & "' and 姓名 like '" & Trim(txtWorkerName.Text) & "'"
adoWorker.RecordSource = txtSQL
adoWorker.Refresh
If adoWorker.Recordset.BOF Then
MsgBox "没有此人的记录,请确认!", vbOKOnly + vbExclamation, "警告"
End If
End If
End If
End If
End SubPrivate Sub cmdShow_Click() '显示所有记录
Dim txtSQL As String
dgWorker.AllowAddNew = False
dgWorker.AllowDelete = False
dgWorker.AllowUpdate = False
txtSQL = "select * from 工作人员信息表"
adoWorker.RecordSource = txtSQL
adoWorker.Refresh
End SubPrivate Sub cmdUpdate_Click()
dgWorker.AllowUpdate = True
End SubPrivate Sub dgWorker_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu pop
End If
End SubPrivate Sub Form_Load()
cblSex.AddItem ("男")
cblSex.AddItem ("女")
dgWorker.AllowAddNew = False
dgWorker.AllowDelete = False
dgWorker.AllowUpdate = False
tvPerson.Nodes.Add , , "ROOT", "所有工作人员", ImageList1.ListImages(1).Index
arry1 = Array("系统管理员", "专家", "工作人员", "部门经理", "财务人员")
For Index = 0 To 4
tvPerson.Nodes.Add "ROOT", tvwChild, , arry1(Index), ImageList1.ListImages(Index + 1).Index
Next
End SubPrivate Sub mnuaddnew_Click()
dgWorker.AllowAddNew = True
dgWorker.AllowDelete = False
dgWorker.AllowUpdate = TrueEnd SubPrivate Sub tvPerson_Click()
Dim newnode As Node
Dim IndexSet newnode = tvPerson.SelectedItemSelect Case newnode.Text
Case "所有工作人员"
txtSQL = "select * from 工作人员信息表 "
adoWorker.RecordSource = txtSQL
adoWorker.Refresh
Case "专家"
txtSQL = "select * from 工作人员信息表 where 权限级别=1"
adoWorker.RecordSource = txtSQL
adoWorker.Refresh
Case "工作人员"
txtSQL = "select * from 工作人员信息表 where 权限级别=2"
adoWorker.RecordSource = txtSQL
adoWorker.Refresh
Case "部门经理"
txtSQL = "select * from 工作人员信息表 where 权限级别=3"
adoWorker.RecordSource = txtSQL
adoWorker.Refresh
Case "财务经理"
txtSQL = "select * from 工作人员信息表 where 权限级别=4"
adoWorker.RecordSource = txtSQL
adoWorker.Refresh
Case "系统管理员"
txtSQL = "select * from 工作人员信息表 where 权限级别=0"
adoWorker.RecordSource = txtSQL
adoWorker.Refresh
End SelectEnd Sub
————————————————————————————————————
以上是这个窗口的主代码,就是刷新问题。
如果不去增加或者显示的话。
就会写进数据库里。
相反就会写不进去?Private Sub cmdShow_Click() '显示所有记录
Dim txtSQL As String
dgWorker.AllowAddNew = False
dgWorker.AllowDelete = False
dgWorker.AllowUpdate = False '把自动更新置为FALSE了,所以写不进去
txtSQL = "select * from 工作人员信息表"
adoWorker.RecordSource = txtSQL
adoWorker.Refresh
End Sub我有点不明白,是进不去主窗口还是进不去这几个按钮
tblSystem.Buttons(1).Enabled = False
tblSystem.Buttons(2).Enabled = False
tblSystem.Buttons(3).Enabled = False
tblSystem.Buttons(5).Enabled = False
tblSystem.Buttons(6).Enabled = False
tblSystem.Buttons(7).Enabled = False这几个按钮解锁的代码在那里?
txtSQL = "insert into 日志表 (工作人员ID,姓名,账号,访问内容,锁定系统时间) values('" & CStr(WorkerID) & "','" & CStr(WorkerName) & "','" & CStr(SystemID) & "',"您访问的是系统管理页面!","&now()&")""您访问的是系统管理页面!" 要用单引号 '您访问的是系统管理页面!'"&now()&"------" & Now() & "
另外工作人员ID和账号都是字符型的吗?如果是数字型的那么要去掉单引号和cstr的
frmlogin是登陆窗口,这几个按钮是完成别的功能,并不需要解锁。我指的是若按锁住按钮后就再次出现登陆窗口。
可是出现的问题是出现登陆窗口后就再也进不去主窗口了,就是密码和用户名都正确也进不去。
只是判断功能还在。
我用的frmsystemmain.show方法, If Trim(sstr.Fields("密码")) = Trim(txtPassword.Text) Then
Select Case sstr.Fields("权限级别")
Case 0
Load frmSystemMain
frmSystemMain.Show
但是这个锁屏按钮是在frmsystemmian(主窗口上的)
——————————————————————————————
问题二:
Dim conn1 As ADODB.Connection
Dim rs1 As ADODB.Recordset
Set conn1 = New ADODB.Connection
Dim ConnString As String
ConnString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=hospital"
txtSQL = "insert into 日志表 (工作人员ID,姓名,账号,访问内容,锁定系统时间) values('" & CStr(WorkerID) & "','" & CStr(WorkerName) & "','" & CStr(SystemID) & "','您访问的是系统管理页面!'," & Now() & ")"
conn1.Execute (txtSQL)
这个insert into 语句也没有任何问题,
但是总是提示对象关闭时不允许被操作,即使我像以上重新定义了一个conn 和 rs对象也不行。
不知为什么。
————————————————
谢谢!
有空请帮我回答。
Load frmSystemMain
frmSystemMain.Show
能执行到这一步吗?
问题二:
conn1.open
conn1.Execute (txtSQL)
好像到form_resize
就不执行了。
它就会执行到主窗口不动了。
以下它不执行了。
Private Sub tblSystem_ButtonClick(ByVal Button As MSComctlLib.Button)
。
End Sub
'fraSystem.Top = frmSystemMain.Top + 1080
'fraSystem.Left = 0
'fraSystem.Width = 16000
'fraSystem.Height = 10000
'End Sub
因为你并没有退出frmSystemMain,所以每次show都要加1080,超出屏幕了
我刚才上不了网。
可是frmlogin.show可以出来。
但是在frmlogin里调不出frmsystemmain.
form resize里我都注释掉了。
可是frmsystemmain还是出不来。
请多多指教!!
QQ:33268647
请注明:CSDN
搞了两个小时,一无所获,初学的困惑。
我把除那个锁定之外的键全部都注释掉了。
但不是不行。
即时新建一个frmlogin 登陆窗口,但是主窗口还是出不来。
努力中,请继续关注!!