Advertisement

04.24.2008 at 10:53AM PDT, ID: 23351219
[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!

Run-Time Error 91: Using VBA to populate Excel template from Access Queries

Tags: Access VBA
I have an Excel template that I fill with data from Access queries using VBA. I have a form with buttons, and when a particular button is clicked, the corresponding function is called. All of the code is the same, except for the area descriptions (rst.fields(0). value = "x"). When I click on the command button, it calls the code that I have attached. However, almost always, the first time that I click the button I get a run-time error 91 "Object Variable or With block variable not set." If I click "End" on the message box and click on the command button again, the code executes without a problem. It happens for each button that I click. The first time I get an error. The second time it executes as intended.

I have been trying to figure out how to avoid this error for a few days now (and haven't found anything on this site yet). I would rather not have the users encountering this error when they are trying to generate the reports (for obvious reasons). For purposes of this report, it must be in Excel and cannot be recreated as an Access report.

Thank you for your help!
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:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
Option Compare Database
 
    Dim appExcel As New Excel.Application
    Dim xlsheet As Worksheet
    Dim dbs As DAO.Database
    Dim rst As DAO.Recordset
    Dim int_cell As Integer
 
    
    
Public Function TX_Main_Summary()
      
    Set dbs = CurrentDb
 
    Set rst = dbs.OpenRecordset("TX Summary Top (Export)")
        rst.MoveLast
        rst.MoveFirst
 
    appExcel.Visible = True
    appExcel.Workbooks.Open ("M:\MYPATH\HMDAMAIN.TX.xlt")
       
    ActiveWorkbook.Activate
 
    int_cell = 1
    Set xlsheet = ActiveWorkbook.Worksheets("TITLE")
    xlsheet.Range("A" & int_cell).Value = Forms![REPORT FORM]!txtTitle
    
    Set xlsheet = ActiveWorkbook.Worksheets("HMDA.TX.")
    
    int_cell = 8
 
    Do While Not rst.EOF
        
    If rst.Fields(0).Value = "AUSTIN" Then
        int_cell = 8
        
        Call FILLSHEET
        
    End If
        
    If rst.Fields(0).Value = "DALLAS" Then
    
        int_cell = 9
        
        Call FILLSHEET
    
    End If
    
        If rst.Fields(0).Value = "HOUSTON" Then
        int_cell = 10
        
        Call FILLSHEET
        
    End If
        
    If rst.Fields(0).Value = "Fort Worth (Tarrant County)" Then
    
        int_cell = 11
        
        Call FILLSHEET
    
    End If
    
          rst.MoveNext
        
    Loop
 
 
  Set rst = dbs.OpenRecordset("TX Summary Bottom (Export)")
  
  If rst.RecordCount <> 0 Then
  
        rst.MoveLast
        rst.MoveFirst
 
    Do While Not rst.EOF
        
    If rst.Fields(0).Value = "AUSTIN-SAN MARCOS" Then
        int_cell = 16
        
        Call FILLSHEET
        
    End If
        
    If rst.Fields(0).Value = "DALLAS-PLANO-IRVING" Then
    
        int_cell = 17
        
        Call FILLSHEET
                       
    End If
    
        If rst.Fields(0).Value = "HOUSTON-BAYTOWN-SUGAR LAND" Then
        int_cell = 18
        
        Call FILLSHEET
        
    End If
        
    If rst.Fields(0).Value = "FORT WORTH-ARLINGTON" Then
    
        int_cell = 19
        
        Call FILLSHEET
    
    End If
    
         rst.MoveNext
        
    Loop
 
End If
 
 
    Set rst = dbs.OpenRecordset("TX MULTIFAMILY Top (Export)")
    
    If rst.RecordCount <> 0 Then
    
        rst.MoveLast
        rst.MoveFirst
        
        Do While Not rst.EOF
        
    If rst.Fields(0).Value = "AUSTIN" Then
        int_cell = 8
        
        Call FILLSHEET_MULTI
        
    End If
        
    If rst.Fields(0).Value = "DALLAS" Then
    
        int_cell = 9
        
        Call FILLSHEET_MULTI
    
    End If
    
        If rst.Fields(0).Value = "HOUSTON" Then
        int_cell = 10
        
        Call FILLSHEET_MULTI
        
    End If
        
    If rst.Fields(0).Value = "Fort Worth (Tarrant County)" Then
    
        int_cell = 11
        
        Call FILLSHEET_MULTI
    
    End If
    
          rst.MoveNext
        
    Loop
 
End If
 
 
 
  Set rst = dbs.OpenRecordset("TX MULTIFAMILY BOTTOM (Export)")
  
  If rst.RecordCount <> 0 Then
  
        rst.MoveLast
        rst.MoveFirst
 
    Do While Not rst.EOF
        
    If rst.Fields(0).Value = "AUSTIN-SAN MARCOS" Then
        int_cell = 16
        
        Call FILLSHEET_MULTI
        
    End If
        
    If rst.Fields(0).Value = "DALLAS-PLANO-IRVING" Then
    
        int_cell = 17
        
        Call FILLSHEET_MULTI
                       
    End If
    
        If rst.Fields(0).Value = "HOUSTON-BAYTOWN-SUGAR LAND" Then
        int_cell = 18
        
        Call FILLSHEET_MULTI
        
    End If
        
    If rst.Fields(0).Value = "FORT WORTH-ARLINGTON" Then
    
        int_cell = 19
        
        Call FILLSHEET_MULTI
    
    End If
    
         rst.MoveNext
        
    Loop
 
End If
 
      xlsheet.SaveAs Forms![REPORT FORM]!txtPath
      MsgBox "File has been saved."
      Set xlsheet = Nothing
      appExcel.Quit
      Set appExcel = Nothing
      
      
End Function
 
Public Function FILLSHEET()
 
        xlsheet.Range("B" & int_cell).Value = rst.Fields(1)
        xlsheet.Range("C" & int_cell).Value = rst.Fields(2)
        xlsheet.Range("D" & int_cell).Value = rst.Fields(3)
        xlsheet.Range("E" & int_cell).Value = rst.Fields(4)
        xlsheet.Range("F" & int_cell).Value = rst.Fields(5)
        xlsheet.Range("G" & int_cell).Value = rst.Fields(6)
 
End Function
 
Public Function FILLSHEET_MULTI()
 
        xlsheet.Range("J" & int_cell).Value = rst.Fields(1)
        xlsheet.Range("K" & int_cell).Value = rst.Fields(2)
 
End Function
Start your free trial to view this solution
Question Stats
Zone: Microsoft
Question Asked By: aanderzak
Solution Provided By: stevbe
Participating Experts: 1
Solution Grade: A
Views: 190
Translate:
Loading Advertisement...
04.24.2008 at 12:09PM PDT, ID: 21434115

Rank: Genius

All comments and solutions are available to Premium Service Members only.

Start your 7-day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
04.24.2008 at 01:03PM PDT, ID: 21434616

All comments and solutions are available to Premium Service Members only.

Start your 7-day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
04.24.2008 at 01:27PM PDT, ID: 21434816

All comments and solutions are available to Premium Service Members only.

Start your 7-day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
04.28.2008 at 09:18AM PDT, ID: 21455339

Rank: Genius

All comments and solutions are available to Premium Service Members only.

Start your 7-day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
 
Loading Advertisement...
20080236-EE-VQP-29 / EE_QW_2_20070628