I am trying to use Excel as a database, and I am following a tutorial from this site .
The problem is that whenever I try to "Refresh drop-down lists" in the file below, I get this error: "Microsoft expects another application to complete the OEL action."
What am I missing or doing wrong here, and how do I do this?
I use Excel 2016 Home and Student that support uptodate. I also enable macros when opening a workbook.
The same file works fine when opened in Excel 2007. I also noticed that the Microsoft ActiveX Data Objects 6.0 library refers to "msado60.dll" in the example, while the file "msado60.tlb" in Excel 2016 (which I use).
Excel File Link
Private Sub cmdShowData_Click() 'populate data strSQL = "SELECT * FROM [data$] WHERE " If cmbProducts.Text <> "" Then strSQL = strSQL & " [Product]='" & cmbProducts.Text & "'" End If If cmbRegion.Text <> "" Then If cmbProducts.Text <> "" Then strSQL = strSQL & " AND [Region]='" & cmbRegion.Text & "'" Else strSQL = strSQL & " [Region]='" & cmbRegion.Text & "'" End If End If If cmbCustomerType.Text <> "" Then If cmbProducts.Text <> "" Or cmbRegion.Text <> "" Then strSQL = strSQL & " AND [Customer Type]='" & cmbCustomerType.Text & "'" Else strSQL = strSQL & " [Customer Type]='" & cmbCustomerType.Text & "'" End If End If If cmbProducts.Text <> "" Or cmbRegion.Text <> "" Or cmbCustomerType.Text <> "" Then 'now extract data closeRS OpenDB rs.Open strSQL, cnn, adOpenKeyset, adLockOptimistic If rs.RecordCount > 0 Then Sheets("View").Visible = True Sheets("View").Select Range("dataSet").Select Range(Selection, Selection.End(xlDown)).ClearContents 'Now putting the data on the sheet ActiveCell.CopyFromRecordset rs Else MsgBox "I was not able to find any matching records.", vbExclamation + vbOKOnly Exit Sub End If 'Now getting the totals using Query If cmbProducts.Text <> "" And cmbRegion.Text <> "" And cmbCustomerType.Text <> "" Then strSQL = "SELECT Count([data$].[Call ID]) AS [CountOfCall ID], [data$].[Resolved] " & _ " FROM [Data$] WHERE ((([Data$].[Product]) = '" & cmbProducts.Text & "' ) And " & _ " (([Data$].[Region]) = '" & cmbRegion.Text & "' ) And (([Data$].[Customer Type]) = '" & cmbCustomerType.Text & "' )) " & _ " GROUP BY [data$].[Resolved];" closeRS OpenDB rs.Open strSQL, cnn, adOpenKeyset, adLockOptimistic If rs.RecordCount > 0 Then Range("L6").CopyFromRecordset rs Else Range("L6:M7").Clear MsgBox "There was some issue getting the totals.", vbExclamation + vbOKOnly Exit Sub End If End If End If End Sub Private Sub cmdUpdateDropDowns_Click() strSQL = "Select Distinct [Product] From [data$] Order by [Product]" closeRS OpenDB cmbProducts.Clear rs.Open strSQL, cnn, adOpenKeyset, adLockOptimistic If rs.RecordCount > 0 Then Do While Not rs.EOF cmbProducts.AddItem rs.Fields(0) rs.MoveNext Loop Else MsgBox "I was not able to find any unique Products.", vbCritical + vbOKOnly Exit Sub End If '---------------------------- strSQL = "Select Distinct [Region] From [data$] Order by [Region]" closeRS OpenDB cmbRegion.Clear rs.Open strSQL, cnn, adOpenKeyset, adLockOptimistic If rs.RecordCount > 0 Then Do While Not rs.EOF cmbRegion.AddItem rs.Fields(0) rs.MoveNext Loop Else MsgBox "I was not able to find any unique Region(s).", vbCritical + vbOKOnly Exit Sub End If '---------------------- strSQL = "Select Distinct [Customer Type] From [data$] Order by [Customer Type]" closeRS OpenDB cmbCustomerType.Clear rs.Open strSQL, cnn, adOpenKeyset, adLockOptimistic If rs.RecordCount > 0 Then Do While Not rs.EOF cmbCustomerType.AddItem rs.Fields(0) rs.MoveNext Loop Else MsgBox "I was not able to find any unique Customer Type(s).", vbCritical + vbOKOnly Exit Sub End If End Sub

source share