Advertisement

11.28.2007 at 10:43AM PST, ID: 22988435
[x]
Attachment Details
[x]
The Solution Rating System

With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.

  • The Grade of the Solution
  • The Zone Rank of the Expert Providing the Solution
  • The Number of Author and Expert Comments
  • The Number of Experts Contributing
  • The Feedback of the Community

Your Input Matters
Because of the way the system is set up, the most important variable in this equation is you. As a member of Experts Exchange, you are able to cast your vote on the quality of the solutions in regard to how complete, accurate, helpful and easy to understand each solution is. When you provide your feedback, each rating is adjusted accordingly. So, if you see a solution that has a poor rating that you think is a good solution, let us know by rating it. As you do, the rating will be adjusted and will become more accurate for other members of our site.

If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support.

Thank you!

8.6

MIcrosoft, Access, 2003, VB - Populate an array from record set - Part Two, Get errors... "Type Mismatch" OR "Can't Assign to Array"

Asked by d2beetle in Access Coding/Macros

Tags: , , , ,

All I want to do is display the Record Set on screen (only if records are found) in table format or perhaps print it; which ever is easier.

However; I continually get one of these errors... "Type Mismatch" OR "Can't Assign to Array"

I have found a couple of previous questions that are good examples, however neither solution resolves my problem...
http://search.experts-exchange.com/Microsoft/Development/MS_Access/Q_20844364.html?sfQueryTermInfo=1+arrai+assign+can%27t

http://search.experts-exchange.com/Microsoft/Development/MS_Access/Access_Coding-Macros/Q_22864730.html?sfQueryTermInfo=1+arrai+assign+can%27t

My code is attached.Start Free Trial
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
Function FindDuplicates()
   Dim DB As Database
   Dim TheRecordSet As Recordset
   Dim RecordSetArray() As Variant     '<----- Related to error
   Dim NumOfRecords, RSRows, RSCols As Long
   Dim ModuleName, ErrorText, SQLQuery1 As String
   
   ' Initialize Error Routine
   On Error GoTo ThreeStoogages
   ModuleName = "FindDuplicates()" & Chr(10) & Chr(13)
   ErrorText = ModuleName & Chr(13) & Chr(10) & "Initialize All Variables"
   
   Set DB = CurrentDb()
   NumOfRecords = 0
   
   MsgBox "Begin VB Module Process: " & ModuleName & Chr(13) & Chr(10) & "Is used to identify duplicate records", vbInformation, "VB Module Execution"
   
   ' The SELECT Query
   SQLQuery1 = "SELECT blah, blah, blah..."
   ' MsgBox SQLQuery1, vbInformation, "SQLQuery1 Variable Contents"
   
   ' Create the RecordSet
   ErrorText = ModuleName & Chr(13) & Chr(10) & "Initialize Record Set"
   Set TheRecordSet = DB.OpenRecordset(SQLQuery1, dbOpenSnapshot)
   TheRecordSet.MoveLast
   TheRecordSet.MoveFirst
   NumOfRecords = TheRecordSet.RecordCount
   
   ' Store the Record Set into an Array
   ErrorText = ModuleName & Chr(13) & Chr(10) & "Store the Record Set in an Array"
   Set RecordSetArray = TheRecordSet.GetRows(NumOfRecords)     '<----- Error occurs here
   
   ' Get the Array Column and Row Count
   ErrorText = ModuleName & Chr(13) & Chr(10) & "Get the Column and Row counts in the Array"
   RSCols = UBound(RecordSetArray, 1) 'Returns the Number of Columns in the Record Set - I have 9 columns
   RSRows = UBound(RecordSetArray, 2) 'Returns the Number of Rows in the Record Set - I have 120 records
   
   ' For the Error Routine
   ErrorText = ModuleName & Chr(13) & Chr(10) & "Check for empty Record Set"
   If TheRecordSet.BOF And TheRecordSet.EOF Then
      MsgBox ModuleName & Chr(13) & "No duplicate records found.", vbInformation, "Successful VB Module Execution"
      Exit Function
   Else
      ' Display the Record Set on screen
      ErrorText = ModuleName & Chr(13) & Chr(10) & "Display Record Set"
      MsgBox ModuleName & Chr(13) & "Duplicate records found.", vbInformation, "Successful VB Module Execution"
      
      ' Write any display code here as needed
      
   End If
   
   MsgBox ModuleName & "Found " & NumOfRecords & " Duplicate Records", vbInformation, "Successful VB Module Execution"
   Exit Function
   
' Error Routine
ThreeStoogages: MsgBox "Error Type: " & Error() & Chr(13) & Chr(10) & ErrorText, vbInformation, "Un-Successful VB Module Execution"
 
End Function
[+][-]11.28.2007 at 10:51AM PST, ID: 20367646

At Experts Exchange, members can ask their questions to thousands of technology professionals, also known as Experts. Experts compete and collaborate to answer those questions by leaving comments like this one.

Start your 7-day free trial to view this Expert Comment or ask the Experts your question.

 
[+][-]11.28.2007 at 10:52AM PST, ID: 20367653

View this solution now by starting your 7-day free trial. Setting up your free trial is quick, easy, and secure. We will return you to this solution, unlocked, when you're done.

 

About this solution

Zone: Access Coding/Macros
Tags: access, array, 2003, ms, vb
Sign Up Now!
Solution Provided By: LSMConsulting
Participating Experts: 1
Solution Grade: B
 
 
[+][-]11.29.2007 at 05:54AM PST, ID: 20373415

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 7-day free trial to view this Author Comment or ask the Experts your question.

 
 
Loading Advertisement...
20080716-EE-VQP-32 / EE_QW_2_20070628