Introduction
This article is about using MFC CodeProject Grid, ATL and MS Access together. The frequently appeared task while using MS Access is showing some intermediate data, after processing another data. For example - showing multiple errors (minus check) after rollback transaction of multistring documents. In Access, we need to create a temporary table and form template for all these cases. There are several ways to avoid this drawback. I've designed a COM control, based on ATL, CodeProject Grid and MFC CDialog
class. It supports methods: AddStr
, ColumnWidths
, Show
, Hide
and Clear
.
How to cook this control:
- Create a new ATL object by Wizard (don't forget include support of MFC);
- Add new Simple control;
- Add new Form (with
CDialog
class) by Wizard;
- Insert CodeProject Grid files into project;
- Add Grid variable dialog class, write all necessary initializations of grid;
- Add COM methods and corresponding methods to dialog class;
Example of using CPGridView in MS Access:
Option Compare Database
Option Explicit
Dim d As CPGridDlg
Function f()
Set d = New CPGridDlg
d.addStr "qwert", 1, 0
d.addStr "12345" & Chr(9) & "67890", 0, 0
d.addStr "qwert", 18, 0
d.addStr "12345" & Chr(9) & "67890" & Chr(9) & "Some string", 0, 0
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("SELECT TOP " + _
"10000 * FROM stocks_opt_rpt_buf02")
d.ColumnWidths "60" & Chr(9) & "60" & Chr(9) & "200" & Chr(9) & "200"
Do While Not rs.EOF
d.addStr rs!Item & Chr(9) & rs!item & Chr(9) _
& rs!qty & Chr(9) & rs!TotalSales, 0, 0
rs.MoveNext
Loop
d.Show
End Function