问题:
本人用VB打开一Access数据库,进行查询,程序在有VB环境下运行正常。但用InstallShield8.0进行打包后部署到其他机器上,发生了有的机器能用,有的机器不能用。不能查询的机器程序不报告错,但查询不出来内容。我通过text框把查询语句打出来,在Access数据库上运行正常。但就在程序里查不到,请教各位高手,问题如何解决。程序SQL内容如下:
mDataPath = CStr(App.Path) + "\data\DigACS.mdb"Public Function getDataPath() As String
getDataPath = mDataPath
End FunctionPrivate Function selectTime(ByVal sName As String) As Boolean '从数据库取 初始化信息
Dim adoConn As New ADODB.Connection
Dim adoRs As New ADODB.Recordset
Dim SQL As String On Error GoTo ado_Err With adoConn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
getDataPath() & ";Persist Security Info=False"
.CursorLocation = adUseClient
.Open
End With
SQL = " SELECT MIN(b.evttime) AS MinDate, MAX(b.evttime) AS MaxDate" _
+ " FROM users AS a INNER JOIN trans_normal AS b ON a.userid=b.userid " _
+ " WHERE (a.name = '" + sName + "')" _
+ " GROUP BY format(b.evttime,'yyyy-mm-dd')" _
+ " ORDER BY MIN(b.evttime) DESC "
Text1.Text = SQL
Set adoRs = adoConn.Execute(SQL)
adoRs.MoveFirst
Text3.Text = ""
While Not adoRs.EOF
Dim sStartTime As String
Dim sEndtime As String
If IsNull(adoRs.Fields(0).Value) Then
sStartTime = ""
Else
sStartTime = CStr(adoRs.Fields(0).Value)
End If
If IsNull(adoRs.Fields(1).Value) Then
sEndtime = ""
Else
sEndtime = CStr(adoRs.Fields(1).Value)
End If
sStartTime = compareStartTime(sStartTime)
sEndtime = compareEndTime(sEndtime)
Text3.Text = selectName.Text & " ," & sStartTime & ", " & sEndtime & ", " & selectDept.Text + vbCrLf + Text3.Text
MSFlexGrid1.AddItem selectName.Text & vbTab & sStartTime & vbTab & sEndtime & vbTab & selectDept.Text
adoRs.MoveNext
Wend If adoRs.State = adStateOpen Then adoRs.Close
If adoConn.State = adStateOpen Then adoConn.Close
Set adoRs = Nothing
Set adoConn = Nothing
MSFlexGrid1.RemoveItem 1
Exit Functionado_Err:
If adoRs.State = adStateOpen Then adoRs.Close
If adoConn.State = adStateOpen Then adoConn.Close
Set adoRs = Nothing
Set adoConn = Nothing
End FunctionText3.Text 显示的查询语句是
SELECT MIN(b.evttime) AS MinDate, MAX(b.evttime) AS MaxDate FROM users AS a INNER JOIN trans_normal AS b ON a.userid=b.userid WHERE (a.name = '张三') GROUP BY format(b.evttime,'yyyy-mm-dd') ORDER BY MIN(b.evttime) DESC 此语句在数据库中查询没问题,只是在部分客户机就是无法查询出内容
请高手指点...........
本人用VB打开一Access数据库,进行查询,程序在有VB环境下运行正常。但用InstallShield8.0进行打包后部署到其他机器上,发生了有的机器能用,有的机器不能用。不能查询的机器程序不报告错,但查询不出来内容。我通过text框把查询语句打出来,在Access数据库上运行正常。但就在程序里查不到,请教各位高手,问题如何解决。程序SQL内容如下:
mDataPath = CStr(App.Path) + "\data\DigACS.mdb"Public Function getDataPath() As String
getDataPath = mDataPath
End FunctionPrivate Function selectTime(ByVal sName As String) As Boolean '从数据库取 初始化信息
Dim adoConn As New ADODB.Connection
Dim adoRs As New ADODB.Recordset
Dim SQL As String On Error GoTo ado_Err With adoConn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
getDataPath() & ";Persist Security Info=False"
.CursorLocation = adUseClient
.Open
End With
SQL = " SELECT MIN(b.evttime) AS MinDate, MAX(b.evttime) AS MaxDate" _
+ " FROM users AS a INNER JOIN trans_normal AS b ON a.userid=b.userid " _
+ " WHERE (a.name = '" + sName + "')" _
+ " GROUP BY format(b.evttime,'yyyy-mm-dd')" _
+ " ORDER BY MIN(b.evttime) DESC "
Text1.Text = SQL
Set adoRs = adoConn.Execute(SQL)
adoRs.MoveFirst
Text3.Text = ""
While Not adoRs.EOF
Dim sStartTime As String
Dim sEndtime As String
If IsNull(adoRs.Fields(0).Value) Then
sStartTime = ""
Else
sStartTime = CStr(adoRs.Fields(0).Value)
End If
If IsNull(adoRs.Fields(1).Value) Then
sEndtime = ""
Else
sEndtime = CStr(adoRs.Fields(1).Value)
End If
sStartTime = compareStartTime(sStartTime)
sEndtime = compareEndTime(sEndtime)
Text3.Text = selectName.Text & " ," & sStartTime & ", " & sEndtime & ", " & selectDept.Text + vbCrLf + Text3.Text
MSFlexGrid1.AddItem selectName.Text & vbTab & sStartTime & vbTab & sEndtime & vbTab & selectDept.Text
adoRs.MoveNext
Wend If adoRs.State = adStateOpen Then adoRs.Close
If adoConn.State = adStateOpen Then adoConn.Close
Set adoRs = Nothing
Set adoConn = Nothing
MSFlexGrid1.RemoveItem 1
Exit Functionado_Err:
If adoRs.State = adStateOpen Then adoRs.Close
If adoConn.State = adStateOpen Then adoConn.Close
Set adoRs = Nothing
Set adoConn = Nothing
End FunctionText3.Text 显示的查询语句是
SELECT MIN(b.evttime) AS MinDate, MAX(b.evttime) AS MaxDate FROM users AS a INNER JOIN trans_normal AS b ON a.userid=b.userid WHERE (a.name = '张三') GROUP BY format(b.evttime,'yyyy-mm-dd') ORDER BY MIN(b.evttime) DESC 此语句在数据库中查询没问题,只是在部分客户机就是无法查询出内容
请高手指点...........
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货