m_pLFDetail.DeleteAllItems(); GetDlgItemText(IDC_PMS501_CFDFinish,cs_temp); if (cs_temp=="是") cs_SQL.Format("select * from 515_AccountCount where AC_LMoney between -.001 and .001"); else if (cs_temp=="否") cs_SQL.Format("select * from 515_AccountCount where AC_LMoney not between -.001 and .001"); else cs_SQL.Format("select * from 515_AccountCount where AC_LMoney is not null"); GetDlgItemText(IDC_PMS501_CFStaff,cs_temp); if (!cs_temp.IsEmpty()) cs_SQL += " and AMT_Staff = '"+cs_temp.Left(5)+"'"; GetDlgItemText(IDC_PMS501_EFDSubject,cs_temp); if (!cs_temp.IsEmpty()) cs_SQL += " and AccountD_Subject like '%"+cs_temp+"%'"; GetDlgItemText(IDC_PMS501_EFDID,cs_temp); if (!cs_temp.IsEmpty()) cs_SQL += " and CBD_ID like '%"+cs_temp+"%'"; GetDlgItemText(IDC_PMS501_EFDSubjectD,cs_temp); if (!cs_temp.IsEmpty()) cs_SQL += " and AC_SubjectD like '%"+cs_temp+"%'"; GetDlgItemText(IDC_PMS501_EFDFundTB,cs_temp); if (!cs_temp.IsEmpty()) cs_SQL += " and AMT_ATime >= "+cs_temp; GetDlgItemText(IDC_PMS501_EFDFundTE,cs_temp); if (!cs_temp.IsEmpty()) cs_SQL += " and AMT_ATime <= "+cs_temp; int Set_I=0; JudgeConnection(); _variant_t v_StaffTemp; m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open(_variant_t(cs_SQL),_variant_t((IDispatch *)m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText); while (!m_pRecordset->adoEOF) { cs_temp.Format("%d",Set_I+1); m_pLFDetail.InsertItem(Set_I,cs_temp,0); v_StaffTemp = m_pRecordset->GetCollect("AMT_Staff"); if (v_StaffTemp.vt!=VT_NULL) m_pLFDetail.SetItemText(Set_I,1,(LPCTSTR)(_bstr_t)v_StaffTemp); v_StaffTemp = m_pRecordset->GetCollect("AccountD_Source"); if (v_StaffTemp.vt!=VT_NULL) m_pLFDetail.SetItemText(Set_I,2,(LPCTSTR)(_bstr_t)v_StaffTemp); v_StaffTemp = m_pRecordset->GetCollect("AccountD_Subject"); if (v_StaffTemp.vt!=VT_NULL) m_pLFDetail.SetItemText(Set_I,3,(LPCTSTR)(_bstr_t)v_StaffTemp); v_StaffTemp = m_pRecordset->GetCollect("AC_SubjectD"); if (v_StaffTemp.vt!=VT_NULL) m_pLFDetail.SetItemText(Set_I,4,(LPCTSTR)(_bstr_t)v_StaffTemp); v_StaffTemp = m_pRecordset->GetCollect("AccountD_Money"); if (v_StaffTemp.vt!=VT_NULL) m_pLFDetail.SetItemText(Set_I,5,(LPCTSTR)(_bstr_t)v_StaffTemp); //v_StaffTemp = m_pRecordset->GetCollect("AMT_HavePay"); //if (v_StaffTemp.vt!=VT_NULL) //{ // cs_temp.Format("%.2f",v_StaffTemp.dblVal); // m_pLFDetail.SetItemText(Set_I,6,cs_temp); //} v_StaffTemp = m_pRecordset->GetCollect("AC_LMoney"); if (v_StaffTemp.vt!=VT_NULL) { d_temp = v_StaffTemp.dblVal; cs_temp.Format("%.2f",v_StaffTemp.dblVal); m_pLFDetail.SetItemText(Set_I,7,cs_temp); } //v_StaffTemp = m_pRecordset->GetCollect("AMT_ATime"); //if (v_StaffTemp.vt!=VT_NULL && d_temp==0) //{ // cs_temp.Format("%.2f",v_StaffTemp.dblVal); // m_pLFDetail.SetItemText(Set_I,8,cs_temp); //} m_pRecordset->MoveNext(); Set_I++; } m_pRecordset->Close();带有//这两段读取不到数据,第一列里面读取出来的都是空,第二列里面都是0 第一列里面公式Sum([512_AccountMPay]![AccountD_Money]) 第二列里面公式IIf(IsNull([200_SaleRecord]!SaleR_SNum),[300_BuyRecord]!BuyR_SNum,[200_SaleRecord]!SaleR_SNum) ps,我发帖的时候把这个给忘了,真不好意思。
GetDlgItemText(IDC_PMS501_CFDFinish,cs_temp);
if (cs_temp=="是")
cs_SQL.Format("select * from 515_AccountCount where AC_LMoney between -.001 and .001");
else if (cs_temp=="否")
cs_SQL.Format("select * from 515_AccountCount where AC_LMoney not between -.001 and .001");
else cs_SQL.Format("select * from 515_AccountCount where AC_LMoney is not null");
GetDlgItemText(IDC_PMS501_CFStaff,cs_temp);
if (!cs_temp.IsEmpty())
cs_SQL += " and AMT_Staff = '"+cs_temp.Left(5)+"'";
GetDlgItemText(IDC_PMS501_EFDSubject,cs_temp);
if (!cs_temp.IsEmpty())
cs_SQL += " and AccountD_Subject like '%"+cs_temp+"%'";
GetDlgItemText(IDC_PMS501_EFDID,cs_temp);
if (!cs_temp.IsEmpty())
cs_SQL += " and CBD_ID like '%"+cs_temp+"%'";
GetDlgItemText(IDC_PMS501_EFDSubjectD,cs_temp);
if (!cs_temp.IsEmpty())
cs_SQL += " and AC_SubjectD like '%"+cs_temp+"%'";
GetDlgItemText(IDC_PMS501_EFDFundTB,cs_temp);
if (!cs_temp.IsEmpty())
cs_SQL += " and AMT_ATime >= "+cs_temp;
GetDlgItemText(IDC_PMS501_EFDFundTE,cs_temp);
if (!cs_temp.IsEmpty())
cs_SQL += " and AMT_ATime <= "+cs_temp;
int Set_I=0;
JudgeConnection();
_variant_t v_StaffTemp;
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open(_variant_t(cs_SQL),_variant_t((IDispatch *)m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);
while (!m_pRecordset->adoEOF)
{
cs_temp.Format("%d",Set_I+1);
m_pLFDetail.InsertItem(Set_I,cs_temp,0);
v_StaffTemp = m_pRecordset->GetCollect("AMT_Staff");
if (v_StaffTemp.vt!=VT_NULL)
m_pLFDetail.SetItemText(Set_I,1,(LPCTSTR)(_bstr_t)v_StaffTemp);
v_StaffTemp = m_pRecordset->GetCollect("AccountD_Source");
if (v_StaffTemp.vt!=VT_NULL)
m_pLFDetail.SetItemText(Set_I,2,(LPCTSTR)(_bstr_t)v_StaffTemp);
v_StaffTemp = m_pRecordset->GetCollect("AccountD_Subject");
if (v_StaffTemp.vt!=VT_NULL)
m_pLFDetail.SetItemText(Set_I,3,(LPCTSTR)(_bstr_t)v_StaffTemp);
v_StaffTemp = m_pRecordset->GetCollect("AC_SubjectD");
if (v_StaffTemp.vt!=VT_NULL)
m_pLFDetail.SetItemText(Set_I,4,(LPCTSTR)(_bstr_t)v_StaffTemp);
v_StaffTemp = m_pRecordset->GetCollect("AccountD_Money");
if (v_StaffTemp.vt!=VT_NULL)
m_pLFDetail.SetItemText(Set_I,5,(LPCTSTR)(_bstr_t)v_StaffTemp);
//v_StaffTemp = m_pRecordset->GetCollect("AMT_HavePay");
//if (v_StaffTemp.vt!=VT_NULL)
//{
// cs_temp.Format("%.2f",v_StaffTemp.dblVal);
// m_pLFDetail.SetItemText(Set_I,6,cs_temp);
//}
v_StaffTemp = m_pRecordset->GetCollect("AC_LMoney");
if (v_StaffTemp.vt!=VT_NULL)
{
d_temp = v_StaffTemp.dblVal;
cs_temp.Format("%.2f",v_StaffTemp.dblVal);
m_pLFDetail.SetItemText(Set_I,7,cs_temp);
}
//v_StaffTemp = m_pRecordset->GetCollect("AMT_ATime");
//if (v_StaffTemp.vt!=VT_NULL && d_temp==0)
//{
// cs_temp.Format("%.2f",v_StaffTemp.dblVal);
// m_pLFDetail.SetItemText(Set_I,8,cs_temp);
//}
m_pRecordset->MoveNext();
Set_I++;
}
m_pRecordset->Close();带有//这两段读取不到数据,第一列里面读取出来的都是空,第二列里面都是0
第一列里面公式Sum([512_AccountMPay]![AccountD_Money])
第二列里面公式IIf(IsNull([200_SaleRecord]!SaleR_SNum),[300_BuyRecord]!BuyR_SNum,[200_SaleRecord]!SaleR_SNum)
ps,我发帖的时候把这个给忘了,真不好意思。
[email protected]
m_pRecordset->Open(_variant_t(cs_SQL),_variant_t((IDispatch *)m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);将拷贝出的文本值到数据库中新建的一个查询中,运行,得出的数据应该就是空的(另外,adOpenDynamic,adLockOptimistic这两个参数只有服务器端游标才有效,但ADO会自动修改为有效的参数,不会影响结果。顺变说明)
如果是,则你的查询有问题了
对应计算字段,必须给出一个字段别名,否则数据库会给一个你可能不清楚的别名,使用AS指定别名:
Sum([512_AccountMPay]![AccountD_Money]) AS TotalMomey程序中读数据:
v_StaffTemp = m_pRecordset->GetCollect("TotalMoney");
Sum([512_AccountMPay]![AccountD_Money])这样的字段返回的记录中AccountD_Money字段不再存在(被改名了)还有:[512_AccountMPay]![AccountD_Money]连接为什么是"!"而不是"."?
//v_StaffTemp = m_pRecordset->GetCollect("AMT_HavePay");
看看v_StaffTemp到底是什么