Hi Rhys,
Thanks for taking your time looking into this. Please bear with the long sql statements.
Here is the code that works (execute sql2, then sql1 and sql3):
:
in my asp.vb file:
-----------------------------
Public Class _default
Inherits System.Web.UI.Page
Protected WithEvents dvnum As System.Web.UI.WebControls.Label
Protected WithEvents returnhdr, agentName, returndtl As System.Web.UI.WebControls.Repeater
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
Dim oConn As OleDbConnection
Dim sConnString As String
Dim oCmd As OleDbCommand
Dim strSQL_returnhdr, strSQL_agentName, strSQL_returndtl As String
Dim oDR_returnhdr, oDR_agentName, oDR_returndtl As OleDbDataReader
If Not (Page.IsPostBack) Then
'get passed query string
dvnum.Text = Request.Params("Dvnum"

End If
'sql1 - the problematic one
strSQL_returnhdr = "SELECT accounts.danum, returnhdr.dvnum,trnsptype.trnspdesc,SUM(retpackage.pkgnum) AS pkgnum," _
& "SUM(retpackage.pkgmass)AS pkgmass, agents.agent_name,returnhdr.wbillno," _
& "returnhdr.STATUS,returnhdr.Recdesc, returnhdr.createdate, returnhdr.rectcost," _
& "returnhdr.geninfo, returnhdr.inspdate,returnhdr.rectdate,accounts.daname, accounts.phone1, Division.divname," _
& "Branches.brname, carrier.cariername, Transtype.transdesc " _
& "FROM returnhdr,accounts, Division, Branches " _
& "LEFT OUTER JOIN Transtype ON returnhdr.ttype = Transtype.transcode " _
& "LEFT OUTER JOIN carrier ON carrier.cariercode = returnhdr.cariercode " _
& "LEFT OUTER JOIN retpackage ON retpackage.dvnum=returnhdr.dvnum " _
& "LEFT OUTER JOIN agents ON agents.agent_num=returnhdr.inspagent " _
& "LEFT OUTER JOIN trnsptype ON trnsptype.trnspcode=returnhdr.trnspcode " _
& "WHERE returnhdr.dvnum = " & dvnum.Text.ToString & " AND returnhdr.danum = accounts.danum " _
& "AND accounts.divnum = Division.divnum AND Division.brnum = Branches.brnum"
'sql2
strSQL_agentName = "SELECT agents.agent_name " _
& "FROM returnhdr LEFT OUTER JOIN agents ON agents.agent_num = returnhdr.rectagent " _
& "WHERE returnhdr.dvnum = " & dvnum.Text.ToString
'sql3
strSQL_returndtl = "SELECT returnhdr.dvnum,accounts.daname,nsnpc.sdescript,returndtl.transcode, " _
& "returndtl.nsn, returndtl.qty,Nsn_loc.location, Returnseria.eic, Returnseria.serial, " _
& "returndtl.outqty, returndtl.unknown,returnhdr.STATUS, " _
& "returndtl.createdate, returndtl.createby, returndtl.modifyby, " _
& "returndtl.modifydate,Transtype.transdesc " _
& "FROM returnhdr,accounts,nsnpc,returndtl LEFT OUTER JOIN Returnseria " _
& "ON returndtl.dvnum = Returnseria.dvnum AND returndtl.nsn = Returnseria.nsn " _
& "AND returndtl.transcode=returnseria.transcode " _
& "LEFT OUTER JOIN Nsn_loc ON returndtl.nsn = Nsn_loc.nsn " _
& "LEFT OUTER JOIN Transtype ON returndtl.transcode = Transtype.transcode " _
& "WHERE returnhdr.dvnum = " & dvnum.Text.ToString & " AND returnhdr.dvnum = returndtl.dvnum " _
& "AND nsnpc.nsn = returndtl.nsn AND returnhdr.danum = accounts.danum " _
& "UNION SELECT returnhdr.dvnum,accounts.daname,nsnpc.sdescript,returndtl.transcode,returndtl.nsn, returndtl.qty, " _
& "Nsn_loc.location, Returnseria.eic, Returnseria.serial, " _
& "returndtl.outqty, returndtl.unknown,returnhdr.STATUS, " _
& "returndtl.createdate, returndtl.createby, returndtl.modifyby, " _
& "returndtl.modifydate,Transtype.transdesc " _
& "FROM retrelation,accounts,nsnpc,returnhdr,returndtl LEFT OUTER JOIN Returnseria " _
& "ON returndtl.dvnum = Returnseria.dvnum AND returndtl.nsn = Returnseria.nsn " _
& "LEFT OUTER JOIN Nsn_loc ON returndtl.nsn = Nsn_loc.nsn " _
& "LEFT OUTER JOIN Transtype ON returndtl.transcode = Transtype.transcode " _
& "WHERE retrelation.dvnum = " & dvnum.Text.ToString & " AND retrelation.childvnum = returnhdr.dvnum " _
& "AND returnhdr.dvnum = returndtl.dvnum AND nsnpc.nsn = returndtl.nsn AND returnhdr.danum = accounts.danum " _
& "ORDER BY 3"
'database connection
sConnString = "provider=VFPOLEDB.1 ;data source= 'C:\data\mydatabase.DBC';password='';user id=''"
oConn = New OleDbConnection(sConnString)
oCmd = New OleDbCommand(strSQL_agentName, oConn)
Try
oConn.Open()
'execute and bind sql2
oDR_agentName = oCmd.ExecuteReader()
With agentName
.DataSource() = oDR_agentName
.DataBind()
End With
oDR_agentName.Close()
'execute and bind sql1
oCmd.CommandText = strSQL_returnhdr
oDR_returnhdr = oCmd.ExecuteReader
With returnhdr
.DataSource() = oDR_returnhdr
.DataBind()
End With
oDR_returnhdr.Close()
'execute and bind sql3
oCmd.CommandText = strSQL_returndtl
oDR_returndtl = oCmd.ExecuteReader()
With returndtl
.DataSource() = oDR_returndtl
.DataBind()
End With
oDR_returndtl.Close()
Catch exc As OleDbException
Response.Write(exc)
Finally
oCmd.Dispose()
If oConn.State = ConnectionState.Open Then
oConn.Close()
End If
oConn.Dispose()
End Try
End Sub
End Class
==========================
And the following one would not work (execute sql1, then sql2 and sql3):
==========================
....
oCmd = New OleDbCommand(strSQL_returnhdr, oConn)
Try
oConn.Open()
'execute and bind sql1
oDR_returnhdr = oCmd.ExecuteReader()
With returnhdr
.DataSource=oDR_returnhdr
.DataBind()
End With
oDR_returnhdr.Close()
'execute and bind sql2
oCmd.CommandText = strSQL_agentName oDR_agentName = oCmd.ExecuteReader
With agentName
.DataSource() = oDR_agentName
.DataBind()
End With
oDR_agentName.Close()
'execute and bind sql3
oCmd.CommandText = strSQL_returndtl
oDR_returndtl = oCmd.ExecuteReader()
With returndtl
.DataSource() = oDR_returndtl
.DataBind()
End With
oDR_returndtl.Close()
Catch exc As OleDbException
Response.Write(exc)
Finally
oCmd.Dispose()
If oConn.State = ConnectionState.Open Then
oConn.Close()
End If
oConn.Dispose()
End Try
.......
The error points to ExecuteReader(), saying the a column in sql1 statement is not found.