Access数据库,如何在某个字段前插入新字段?如何将字段重新命名、
老实话,让用户可以调整字段显示顺序还比较容易,建立一个字段顺序表就可以下面的代码是我的列和字段的映射(用户可以选择列表的列是否显示以及显示顺序,类似资源管理器)voidCPassportView::OnColumnclick(NMHDR*pNMHDR,LRESULT*pResult){NM_LISTVIEW*pNMListView=(NM_LISTVIEW*)pNMHDR;// (pNMListView->iSubItem!=-1){intiFieldIndex;if(FieldFromColumn(pNMListView->iSubItem,iFieldIndex)){SetSort(i...全部
老实话,让用户可以调整字段显示顺序还比较容易,建立一个字段顺序表就可以下面的代码是我的列和字段的映射(用户可以选择列表的列是否显示以及显示顺序,类似资源管理器)voidCPassportView::OnColumnclick(NMHDR*pNMHDR,LRESULT*pResult){NM_LISTVIEW*pNMListView=(NM_LISTVIEW*)pNMHDR;// (pNMListView->iSubItem!=-1){intiFieldIndex;if(FieldFromColumn(pNMListView->iSubItem,iFieldIndex)){SetSort(iFieldIndex);CStringstrColText=m_lvcText[iFieldIndex];enumSortStatenSortState=GetSortState(iFieldIndex);switch(nSortState){case"¡ý";break;case"¡ü";break;}LVCOLUMNlvc;ZeroMemory(&lvc,sizeof(LVCOLUMN)); sk=LVCF_TEXT; zText=strColText。
GetBuffer(256); hTextMax=strColText。GetLength();GetListCtrl()。SetColumn(pNMListView->iSubItem,&lvc);g_listAutoSizeColumns(GetListCtrl(),pNMListView->iSubItem);strColText。
ReleaseBuffer();}}*pResult=0;}CStringCPassportView::GetItemText(ADODB::_RecordsetPtrrst,intiItem,intiFieldIndex){CStringstrText;CPassportDoc*pDoc=GetDocument();if(iFieldIndex=m_astrFields。
GetSize()¦¦iItemm_pSet,iItem);ADODB::FieldPtrpField=pDoc->m_pSet->Fields->Item[_bstr_t(m_astrFields[iFieldIndex])];longlStatus=pField->GetStatus();_variant_tvarVal;try{varVal=pField->Value;}catch(_com_error&e){UNREFERENCED_PARAMETER(e);#ifdef_DEBUGESErrPrintComError(e);#endif}switch(varVal。
vt){case(VT_BOOL):if( olVal){strText="ÊÇ";}elsestrText="·ñ";break;caseVT_I2:caseVT_I4:caseVT_R4:caseVT_R8:caseVT_CY:caseVT_ :caseVT_ :caseVT_UI1:caseVT_UI2:caseVT_UI4:caseVT_I8:caseVT_UI8:caseVT_ :caseVT_ (VT_BSTR);strText=(LPCTSTR)_bstr_t(varVal);break;caseVT_ : }}catch(_com_error&e){UNREFERENCED_PARAMETER(e);#ifdef_DEBUGESErrPrintComError(e);#endif}returnstrText;}BOOLCPassportView::FieldFromColumn(constintnCol,int&iFieldIndex){if(nCol=m_arOrder。
GetSize())returnFALSE;iFieldIndex=m_arOrder[nCol];returnTRUE;}voidCPassportView::OnInitialUpdate(){CListView::OnInitialUpdate();GetListCtrl()。
SetExtendedStyle(LVS_EX_HEADERDRAGDROP¦LVS_EX_FULLROWSELECT);m_astrFields。RemoveAll();m_arOrder。
RemoveAll();try{ADODB::FieldsPtrpFields=GetDocument()->m_pSet->Fields;longlFieldsCount=pFields->Count;m_arOrder。
SetSize(lFieldsCount);ADODB::FieldPtrpItem;for(longi=0;iItem[i];m_astrFields。Add(pItem->Name);m_arOrder。
SetAt(i,i);}}catch(_com_error&e){ESErrPrintComError(e);return;}//InitHeader();for(inti=0;iitem);if(pItem->mask&LVIF_TEXT){intiFieldIndex=0;if(!FieldFromColumn(pItem->iSubItem,iFieldIndex))return;StrCpyN(pItem->pszText,GetItemText(pDoc->m_pSet,pItem->iItem,iFieldIndex),pItem->cchTextMax);}*pResult=0;}voidCPassportView::Sort(){_bstr_tbstrTemp;m_bstrSort=bstrTemp;//clearprevfirstfor(inti=0;i0)m_bstrSort+=",";m_bstrSort+=bstrTemp;}}DoRefresh();}。
收起