目前在做产线软件的维护,远程连接方式由winsock协议转变成ODBC方式,数据库由ACCESS升级为SQL2005
这里遇到一个问题,就是本机与远程服务器同步,经过多次尝试,以下代码可行:
Dim Conn As New ADODB.Connection Dim Rs As New ADODB.Recordset Private Sub Form_Load() On Error GoTo ErrorHandle ‘* 连接字符串: Conn.Open "driver={SQL Server};server=" + Trim(Server) + ";uid=" + Trim(User) + ";pwd=" + Trim(Password) + ";database=" + Trim(Data) + "" If Rs.State <> adStateClosed Then Rs.Close Rs.Open "select convert(varchar(10),getdate(),120)as SQLDate,convert(varchar(8),getdate(),114) as SQLTime", Conn, 1, 1 Date = Rs.Fields("SQLDate") ‘日期 Time = Rs.Fields("SQLTime") ‘时间 Exit Sub ErrorHandle: MsgBox Err.Number, vbOKOnly, Err.Description End Sub
调试后又发现一个问题,由于我的计算机登录用户不是管理员权限,当我运行这个程序的时候报错了,错误码是70,表示权限错误。
调试后发现错误位置为:
Date = Rs.Fields("SQLDate") ‘日期
随后我已管理员方式运行此程序发现没有错误;于是我就在想VB是否可以让程序自动以管理员的方式运行呢?要不然客户以非管理员方式运行报错后指定会认为程序有问题,
找了一下资料,的确有办法:
‘在打开的"工程1 - 工程属性"面板中 点"生成"选项卡 在里面的"版本信息"的"文件描述"中写入值"update"(这里就是关键 只要输入包含有"update"字符生成的exe就会以管理员方式运行
注意:只有生成的exe文件才是以管理员方式运行,调试模式下无效