65.9K
CodeProject is changing. Read more.
Home

How to use CodeProject Grid in MS Access to view multiple intermediate results

starIconstarIconstarIconstarIconemptyStarIcon

4.00/5 (3 votes)

Oct 15, 2002

viewsIcon

63384

downloadIcon

918

This article is about using MFC CodeProject Grid, ATL and MS Access together.

Sample Image - CPGridDlg.gif

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:

  1. Create a new ATL object by Wizard (don't forget include support of MFC);
  2. Add new Simple control;
  3. Add new Form (with CDialog class) by Wizard;
  4. Insert CodeProject Grid files into project;
  5. Add Grid variable dialog class, write all necessary initializations of grid;
  6. 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") 
'Hemi stress testing
'It takes only 5 seconds to fill 10 000 records into grid - good grid!
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