Read our blogs, tips and tutorials
Try our exercises or test your skills
Watch our tutorial videos or shorts
Take a self-paced course
Read our recent newsletters
License our courseware
Book expert consultancy
Buy our publications
Get help in using our site
551 attributed reviews in the last 3 years
Refreshingly small course sizes
Outstandingly good courseware
Whizzy online classrooms
Wise Owl trainers only (no freelancers)
Almost no cancellations
We have genuine integrity
We invoice after training
Review 30+ years of Wise Owl
View our top 100 clients
Search our website
We also send out useful tips in a monthly email newsletter ...
Posted by Andrew Gould on 21 April 2021
This video shows you how to extract the results of an ADO recordset using the GetRows method and use it to populate a Listbox on a user form in VBA. You'll learn about ActiveX Data Objects connections and recordsets, how to add values to a listbox using both the AddItem method and the List property and how to transpose an array in VBA.
See our full range of VBA training resources, or test your knowledge of VBA with one of our VBA skills assessment tests.
This video has the following accompanying files:
File name | Type | Description |
---|---|---|
ADODB Recordset to Listbox.xlsm | Excel workbook with macros | |
Movies.xlsx | Excel workbook |
Click to download a zipped copy of the above files.
There are no exercises for this video.
You can increase the size of your video to make it fill the screen like this:
Play your video (the icons shown won't appear until you do), then click on the full screen icon which appears as shown above.
When you've finished viewing a video in full screen mode, just press the Esc key to return to normal view.
To improve the quality of a video, first click on the Settings icon:
Make sure yoiu're playing your video so that the icons shown above appear, then click on this gear icon.
Choose to change the video quality:
Click as above to change your video quality.
The higher the number you choose, the better will be your video quality (but the slower the connection speed):
Don't choose the HD option shown unless your connection speed is fast enough to support it!
Is your Wise Owl speaking too slowly (or too quickly)? You can also use the Settings menu above to change your playback speed.
From: | latinbui |
When: | 20 Feb 22 at 15:17 |
Hello,
Thank you for posting the video. I tried using the sample Excel files that came with the video. When I run the program to populate the listbox using data from the Movies.xlsx file, I received the following error:
1. Run-time error '-2147467259 (80004005)': Failure creating file
Private Sub UserForm_Initialize()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
cn.ConnectionString = _
"Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ThisWorkbook.Path & "\Movies.xlsx;" & _
"Extended Properties='Excel 12.0 Xml;HDR=YES';"
cn.Open
Set rs = New ADODB.Recordset
rs.ActiveConnection = cn
rs.Source = _
"SELECT [Title], [Release Date], [Run Time] FROM [Sheet1$] " & _
"WHERE [Title] LIKE '%star%' ORDER BY [Title]"
rs.Open
With ListBox1
.ColumnCount = rs.Fields.Count
.ColumnWidths = "300;50;50"
.List = WorksheetFunction.Transpose(rs.GetRows)
End With
rs.Close
cn.Close
End Sub
This error most likely occurred at the VBA line: cn.open
I am using Excel Office 365 with Windows 10 64-bit and Microsoft OneDrive. The path to the Movies.xlsx file in OneDrive has the following extension:
https://d.docs.live.net/
References to the following libraries have been turned on in the Excel VBA Editor-Tools\References menu:
1. Visual Basic for Applications
2. Microsoft Excel 16.0 Object Library
3. OLE Automation
4. Microsoft Office 16.0 Object Library
5. Microsoft ActiveX Data Objects 6.1 Library
I am not sure whether the problems in creating the ADO connection has to do with the connection string, the OneDrive path, or the object library references in Excel.
Thank you
From: | Andrew G |
When: | 20 Feb 22 at 19:33 |
Hi! It's almost certainly the OneDrive file location. I believe the accepted workaround is to use a local version of the source file, synced to the version saved to OneDrive.
I hope it helps!
Kingsmoor House
Railway Street
GLOSSOP
SK13 2AA
Landmark Offices
99 Bishopsgate
LONDON
EC2M 3XD
Holiday Inn
25 Aytoun Street
MANCHESTER
M1 3AE
© Wise Owl Business Solutions Ltd 2024. All Rights Reserved.