十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
建个模块, Dim varcnn As OleDb.OleDbConnection ReadOnly Property cnn() As OleDb.OleDbConnection
成都服务器托管,创新互联提供包括服务器租用、成都IDC机房托管、带宽租用、云主机、机柜租用、主机租用托管、CDN网站加速、域名与空间等业务的一体化完整服务。电话咨询:13518219792
Get
If varcnn Is Nothing OrElse varcnn.State ConnectionState.Open Then Dim cnstr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=""" My.Application.Info.DirectoryPath "\Contact.mdb"";Persist Security Info=True"
varcnn = New OleDbConnection(cnstr)
varcnn.Open()
End If
Return varcnn
End Get
登录窗体,新建一个就行了。代码Public Class LoginForm1
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
Using cmd As New OleDb.OleDbCommand("select password from tbuser where userid =?", cnn)
cmd.Parameters.Add("?", OleDbType.VarChar).Value = Me.UsernameTextBox.Text
Dim obj As Object = cmd.ExecuteScalar
If (Not IsDBNull(obj)) AndAlso (obj IsNot Nothing) AndAlso obj = PasswordTextBox.Text Then
Me.DialogResult = Windows.Forms.DialogResult.OK
Else MessageBox.Show("密码不正确!") Return
End If
End Using Me.Close()
End Sub Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
Me.DialogResult = Windows.Forms.DialogResult.Cancel
Me.Close()
End SubEnd Class 项目属性里点查看应用程序事件,写代码Namespace My ' 以下事件可用于 MyApplication:
'
' Startup: 应用程序启动时在创建启动窗体之前引发。
' Shutdown: 在关闭所有应用程序窗体后引发。如果应用程序异常终止,则不会引发此事件。
' UnhandledException: 在应用程序遇到未处理的异常时引发。
' StartupNextInstance: 在启动单实例应用程序且应用程序已处于活动状态时引发。
' NetworkAvailabilityChanged: 在连接或断开网络连接时引发。
Partial Friend Class MyApplication
Private Sub MyApplication_Startup(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup
Dim f As New LoginForm1
If Not f.ShowDialog = DialogResult.OK Then
End
End If
End Sub End ClassEnd Namespace
你测试一下吧。
感觉你的逻辑有些问题,如果账号和密码分开验证的话,可以先根据账号,把密码从数据库里查询出来,如果查询到数据的话,再用查询到的密码跟输入的密码进行判断就可以了,只需要访问一次数据库就可以
解决方案资源管理器中右键菜单,添加,WINDOWS窗体,弹出的对话框中,左栏已安装的模板中选择WINDOWS FORMS ,右边中找到 登录窗体。添加 。程序会添加一个登录界面。很方便。你试下。
Label1.Caption = "融通系统外挂程序"
If Dir(App.Path "/hjw.mdb") "" Then
Set mydata = OpenDatabase(App.Path "\hjw")
Set myrs1 = mydata.OpenRecordset("user", dbOpenTable)
Else
Set mydata = CreateDatabase(App.Path "\hjw", dbLangGeneral, dbVersion40)
mydata.Execute "create table ku (建立日期 text(100),库名 text(100),功能 text(100))"
mydata.Execute "create table system (店号 integer,建立日期 text(100),文件路径 text(100),软件版本 text(100),路径1 text(50),路径2 text(50),路径3 text(50),路径4 text(50))"
kuname = "system"
kugn = "文件信息"
Me.showlist1
mydata.Execute "create table user (user text(50),passwd text(50),name text(50),quanx integer)"
kuname = "user"
kugn = "用户信息"
Me.showlist1
Private Sub cmdOK_Click()
txtUserName.SetFocus
If Trim(txtUserName.Text = "") Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtUserName.SetFocus
Else
sql = "select * from user where user = '" txtUserName.Text "'"
'Debug.Print sql
'Set mrc = ExecuteSQL(sql, MsgText)
Set myrs2 = mydata.OpenRecordset(sql)
If myrs2.EOF = True Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtUserName.SetFocus
Else
If Trim(myrs2.Fields(1)) = Trim(txtPassword.Text) Then
UserName = myrs2.Fields(2)
myrs2.Close
Me.Hide
' UserName = Trim(txtUserName.Text)
'Debug.Print UserName
MDIform1.Show
Else
MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
txtPassword.SetFocus
txtPassword.Text = ""
End If
End If
End If
End Sub
Private Sub Command1_Click()
\'首先引用Microsoft Activex Data Objects 2.x Library
Dim objcon As New ADODB.Connection
Dim objrs As New ADODB.Recordset
Dim strConn As String
strConn = \"Provider=SQLOLEDB.1;User ID=sa;password=密码;Initial Catalog=数据库名称;Data Source=本机IP地址(192.168.1.136)\"
objcon.Open strConn
\'strConn = \"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;password=hNXQF222;Initial Catalog=database;Data Source=192.168.1.136\"
\'objcon.Open \"Provider=sqloledb.1;user id=sa;password=hNXQF222;Initial Catalog=Northwind;Data Source=\"
objrs.Open \"select * from Orders\", objcon, 3, 1
\'在部件中添加DataGrid控件
Set DataGrid1.DataSource = objrs
End Sub
me.dispose()
楼主针对这个问题我也纠结过很久不过就在刚刚我找到了问题所在:
还是用me.close()
打开
项目
》
最下面一行有一个属性》
应用程序》下面
有一个关机模式
改为:当最后一个窗体关闭时。。。注意
me.close要写在窗体show()后面
例如
写成
f2.show()
me.close()
不要写成
me.close()
f2.show()