Ron,
I'm developing a financial tool in the Office 97/Excel VBA enviroment. I would like to incorporate a grid into the interface that can read/write/edit to a database component (Access or Oracle). I tried the DBGrid (Apex software) without success and then learned that it was not VBA compatible, only VB compatible. Are you aware of any grid objects that can be used in the VBA development environment?
-Meredith
Hello Meredith,
I'm by no means an expert on data access from a hosted VBA environment, nor have I worked extensively with anything other than the controls provided with the MSForms library. So perhaps I should plead ignorance before I embarrass myself. However, that hasn't stopped me before, so I don't know why it should now...
The data grids are bound controls; that is, they require a data source that actually connects to a database and retrieves their data. And it seems to me that the root of the problem with DBGrid is that there's no data source that can be readily included along with the DBGrid control. In Visual Basic, the solution is simply to include the Data Control on the same form as DBGrid. But the Data Control is an intrinsic control; it's unavailable to anything outside of the Visual Basic environment itself. (Of course, there may -- and probably are -- third-party products available; I have no idea.)
Microsoft is now aggressively promoting OLE DB and ActiveX Data Objects, and VB 6.0 has a new set of data controls (DataGrid, DataList, DataCombo, MSHFlexGrid, MSFlexGrid) that once again are bound controls. Unlike DBGrid, though, they support OLE DB, and therefore rely on the an ADO Data Source (and in particular the ActiveX Data Objects Data Control, or ADO DC) for data access. Unlike the Data Control, the ADO DC is a custom control (that is, an .OCX) that can be added to any project. In short, if you add ADO DC to your project along with the DataGrid control, you should be able to use them without problem. At least, I did a few trivial tests, and had no difficulty at all.
By the way, Microsoft supplies OLE DB data providers for both Access and Oracle databases, so OLE DB/ADO should definitely be able to get at your data.
I hope that this helps.
--Ron
Return to: Ron's VB Forum
Copyright © 2009 O'Reilly Media, Inc.