Modules & VBA :: Run-time Error While Populating Over 256 Excel Columns
Jun 11, 2013
I'm writing to an excel file from two separate Access tables, for which I'm using two separate DAO.Recordsets in VBA.The first table has 190 columns, the second table has more than 66 columns, so more than 256 columns will be written to the excel file.So I'm not expecting any error due to any maximum of 256 columns, but still I'm getting an error while trying to populate the 257th excel-column:
Run-time error '1004': Application-defined or object-defined error.(The same VBA works fine when I use another table with less columns.)Even more strange: on another computer I did not get the error and I was able to populate more than 256 excel-columns.
Code:
Option Compare Database
Option Explicit
Dim xlApp As Excel.Application
Dim xlWkb As Excel.Workbook
Dim xlWks As Excel.Worksheet
Dim FileNameOut As String
Dim RowNr As Long
Dim ColNr As Long
I am using MS Access and Excel 2007. I have a query that I need to export to a specific sheet in excel, and the vba is working great and doing what it should. Problem is, some of the data is being exported as numeric, not as text which is what I need. I have several tables related to one another and the fields that were created with the LookUp Wizard and the ones that are not exporting property. From what I have read online, the data that is being exported is from the bound columns, which are the primary key "ID" fields. I have read online that I need to JOIN tables so that Access knows how to identify the foreign keys, but no matter how I do that, it is still exporting the "ID "fields and not the description.
Here is the SQL that I am trying to export:
SELECT tblSampleNew.*, qryProjectSearch.Company, qryProjectSearch.ProjectName, qryProjectSearch.SampleDate, qryProjectSearch.SubmissionDate, qryProjectSearch.SamplePriority, qryProjectSearch.DueDate FROM qryProjectSearch INNER JOIN tblSampleNew ON qryProjectSearch.IDNumber = tblSampleNew.IDNumber;
the qryProjectSearch.Company is one of the fields that is exporting incorrectly. I have tried to JOIN it to the original table by adding in this expression to the SQL above:
FROM qryProjectSearch INNER JOIN tblClients ON qryProjectSearch.Company = tblClients.ID
This gives a mismatch error, since one field is text type and the other is number, but even when I adjust that, it is still exporting as numbers and not text.
The annoying thing is that when I go to External Data --> Export to Excel Spreadsheet, every exports as text like I want!
I'm trying to export queries from access to excel using the DoCmd option. The code (see below) works to a point - it exports some of the queries before I get a run time error:
"31532: Microsoft Access was unable to export the data".
The worksheet tabs also do not pick up the query name but instead return what looks like a temporary ID (e.g. ~TMPCLP118431). Have tried different file locations and versions of excel but the same thing keeps happening.
Code: Sub ExportAllQueries() Dim qdf As QueryDef Dim db As Database
I am having trouble getting the following code to load data from my Excel file "Book.xlsx" into my table called "ExcelDataBook":
Sub btnExcelImport_Click() DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "ExcelDataBook", _ "C:Usersdacampb1DesktopBook.xlsx", , "Sheet1!A1:B12000" End Sub
The Excel file only has one sheet "Sheet1' and has only 10,504 rows but this can vary so I set it in the code for 12,000 rows. The sheet has only two columns "A" and "B" with the first row of the two columns labeled "Store" and "Amount" and my tabel has only two fields "Store" and "Amount".My error reads: Run-time error '2391': Field 'F1' doesn't exist in the destination table 'ExcelDataBook.'
Im trying to export a query to specific columns in excel and im using this code.
Code:
Dim objXL As Object Dim xlWB As Object Dim xlWS As Object
[Code].....
I tried it on other querys and it works but doesn't work on this specific one. I get an error on the "set rst = currentDb" line. And to my knowledge it doesn't work because I have a between two dates filter in it. So when I run it, I get an error saying I have too few parameters, expecting 2.
Also it seems to be exporting the lookup id's not the value when exporting(on the query that it did work on)
I need to add two additional columns for each imported spreadsheet, which are not in the original files.
First column, named 'Customer Name', needs to retrieve information from cell A6 in Excel file, which is not part of range "name" that is imported to Access. If necessary, I could somehow include it in this range but then I still would have a problem of how to repeat a value of A6 in each row of table in Access.
Second column, named "File Name", I would like to include an Excel file name from which data was imported. Again, I would like to repeat value for each row in the table, i.e. if I have 6 rows with data from file X, I would like to repeat X.xlsx in each row in column "File Name".
Code: Dim strFile As String DoCmd.SetWarnings False DoCmd.RunSQL "DELETE * FROM Data;" ' Set file directory for files to be imported strPath = "C: est"
I am trying to publish an Excel Pivot Chart, but keep getting Run Time Error 1004 - Application-defined or object-defined error...
I have tried the code 2 ways:
Code: Sub PublishChart() Worksheets("Historical_Pivot").Activate With ActiveWorkbook.PublishObjects.Add(xlSourceChart, _ Path & "" & "AWA" & "_" & "JAMALCO" & "_" & "Chart" & ".htm", _ "Historical_Pivot", "JAMALCO", xlHtmlStatic, "ABC REQ BACKLOG_2013", "") .Publish (True) .AutoRepublish = False End With End Sub
Code: Sub PublishChart() Dim wb As Workbook Dim ws As Worksheet Set wb = ThisWorkbookSet ws = wb.Sheets("Historical_Pivot") ws.ChartObjects("JAMALCO").Activate With wb.PublishObjects.Add(xlSourceChart, Path & "" & "AWA" & "_" & "JAMALCO" & "_" & "Chart" & ".htm", ws _ , "", xlHtmlStatic, "", "") .Publish (True) End With End Sub
I using excel 2010 and access 2010. I have VBA script runtime error 3011 when running script. It has problem finding access report. First I was passing in as variable with the name. Then I used a script to pull in the report name from access and it is still failing with same error.
Code is shown below.
Private Sub Command29_Click() Dim reportname As String Dim theFilePath As String, FilePath As String, tempStr As String ' reportname = Me.My_DBTableName
I am trying to improve the performance (loading time) of my main form. The big tip seems to be use SQL in VBA to populate subforms and comboboxes when needed, rather than when the main form loads.
I have a combobox configured for 2 columns, bound column = 1 and column widths set at 2cm each. After a struggle, I have managed to get the combo box to populate with SQL, but only for the first column. My second column appears when I click the down arrow but there is no data showing.
How do I tell the SQL to place the 'Identifier' data in the second column of my combobox? :confused:
Here is the subroutine populates the combobox when the subform loads: Private Sub Form_Load() On Error GoTo ErrHandler '================================================= ======================== 'Populate cboEmployeeID with SQL when form loads 'This is done to reduce time taken to load parent form '================================================= ========================
'Define the SQL text Dim stSql As String stSql = "Employee_ID, Identifier, Section_ID, Office_Phone_Ranking, Role FROM [tbl_Prj_Details]" stSql = stSql & "WHERE (((tbl_Emp_Details.Section_ID)=2) AND ((tbl_Emp_Details.Role)='Technical'))" stSql = stSql & " ORDER BY tbl_Emp_Details.Office_Phone_Ranking;"
'Populate combo box with SQL With Me![cboEmployeeID] .RowSource = stSql .Requery End With
ExitHere: Exit Sub
ErrHandler: MsgBox Err.Number & " - " & Err.Description & Chr(13) _ & Chr(13) & "Error in 'fsubPrjDet01EDT1': Err 003" Resume ExitHere End Sub
I have Two tables one table has a Master list of products (ProductMaster) with a Unique product code (ProductMaster.UQ_ID). The second Table has Order data. The Second table (OrderTable) is where I will enter the product code (UQ_ID) which is the unique Identifier which is also in the ProductMaster. As soon as I enter the Prodt code in the OrderTable I should have all the related fields filled in from the Product Master.
Columns in The ProductMaster = Product_ID, Product_Manucaturer, Product_Weight, Product_Color, Product_Size
Columns in The OrderTable = Product_ID, Product_Manucaturer, Product_Weight, Product_Color, Product_Size, Order_Date, Ordered_By
The columns marked in red are the ones that will have to be automatically fetched from ProductMaster
The data in the second table should be populated from the ProductMaster as soon as I enter the Product_Code. The rest of the details Can be filled manually filled in.
Is it possible to do this with Access. I have tried different expressions in the Fields without much use. The Documentation from Microsoft is very weak. If someone knows a solution or where the documentation is, please help.
I have the following code, which works the way I want it to when I click the button the first time. However, if I close out the excel and click the button again, it errors at the line "ActiveWorkbook.Worksheets("Ref").UnProtect", with the message "Run-time error '91', Object variable or With block variable not set". I can not figure this out, why in the world does it work the first time, but not the second???
Private Sub cmdReport_Click() Dim path As String Dim XL As Object Dim oBook As Excel.Workbook Dim pic As Excel.Shape Set XL = CreateObject("Excel.Application")
Doing Ctrl + ' will put in the value from the cell above it. But I want to do this across 4 columns. On one row, I am selecting across 4 columns and doing Ctrl + ' and only the first cell populates with the value above it.
Is there a way to get the 3 other columns to populate with the value of them (the values are different across all columns).
Is it possible that two mgsbox will Show up, where the user can put in the timeperiod.
The time period would be the starting day of the contract.
It's called inception_date
Code: Private Sub Befehl1_Click() Dim xlApp As Object 'Excel.Application Dim xlBook As Object 'Excel.Workbook Dim xlSheet As Object 'Excel.Worksheet Dim rstID As DAO.Recordset, tmpStr As String Dim rstGr As DAO.Recordset, strSQL As String
Previously my snapshot file was displaying thur this code but as 2010 Access, it produded subjected error and halt at below red color line.
Public Function LoadSnapshotFile(snpCtl As Object, strFilePath As String) As Boolean Const conSnpFinishedDownload As Integer = 4 With snpCtl .SnapshotPath = strFilePath
[Code]....
And it was runing well. But not now due to the produced error. I tried to make it pdf extension of the report file. It is updating the file at the path (where I kept the report) but problem is not displaying after click event on the form.
I have created a report in Access for around 800 uniquely identified line items. My end goal is to develop a script that will Print a PDF for each unique identifier and save them all in one folder and have each one named by unique identifier. Below is the script I have written, I cannot get through the Run-Time Error 91. The data is being derived from a SQL database.
Private Sub Command35_Click() Dim rst As ADODB.Recordset Set rst = Currentdb.OpenRecordset("SELECT DISTINCT [Unique_Identifier] FROM [tbl_questionnaire] ORDER BY [Unique_identifier];", dbOpenSnapshot)
I have the following code in a module that sends out various email updates to me when I'm off site. On my PC it works perfectly whether I have Outlook open or not. I've installed the database on several other machines, but I'm getting a Run Rime Error 287 on the .Send line if the user has Outlook closed. Any setting somewhere in Outlook or Access that needs changing? Or is there something that can be changed in the code to ensure the email sends whether Outlook is open or not?
Code: Public Sub SendEmailNotification(strSubject as String, strMessage as String, strAddress as String) Dim olEmailApp As Object Dim olMsg As Object Dim strEmailBody As String Set olEmailApp = CreateObject("Outlook.Application") Set olMsg = olEmailApp.CreateItem(0)
The task is (1) output an Access query to Excel (2) overwrite that file if it already exists (3) apply specific formatting to the header row and the other rows in Excel. I have cobbled the code together from two sources. The beginning and end are adapted from code on btabdevelopment.com but the large insert in the middle is code I got form a project a former colleague had done. But he's no longer around.
The problem: I click the button and everything works OK. The file is created and formatted just how I want. If I click the button a second time though, it seems to run OK, but when I open the file it is NOT formatted. However, theres another window behind it called Book 1 which has all the data and all the correct formatting it just hasnt been saved. If I click it a third time I get an error message that says Object variable or With block variable not set. Im not even 100% all that is accurate because I have tried it a multitude of ways, closing and re-opening the form, closing and re-opening Access itself, starting with Excel open or closed, never with the destination excel file open though. I dont seem to get exactly the same behaviour any two times. But as far as I can see, if I close and re-open Access, it always works the first time. So I can live with it.
Code: Private Sub cmdExport_Click() On Error GoTo Errhandler Dim rs As DAO.Recordset Dim oExcel As Object Dim oBook As Object Dim oSheet As Object
I have some code that creates appointment that i can send to colleagues, when I run the code first time it work all ok but the second time i run it i get a run time error see pic below
But I don't get any error's if i leave outlook open have also try the code on 2 pc's but stiil same problem
1392336756_tmp_run_time_error[1].jpg
Code: Shell ("Outlook.exe") Dim outMail As Object Set outMail = Outlook.CreateItem(olAppointmentItem) outMail.Recipients.Add (Me.txtsupervisor)
I am trying to create a txt file to import into our accounting software. I get the file (its blank), but it fails on the WriteLine and i get the run time error. I have a command button on a form that the user will click to export the file.
Private Sub cmdExport_Click() Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset Dim strPath As String Dim strPathGB As String
I am trying to create an INSERT statement from a form to put unbound fields in a table. The challenge that I am a getting is that I am getting a
Run-time error '3075' Syntax error in date in query expression '#'
What is really perplexing and perhaps something that may guide in identifying the culprit is that I have an identifcal form that uses the identical code and it works.
Here is the code below:
Dim strSQL As String Dim strCriteria As String strSQL = "" strSQL = strSQL & " INSERT INTO [tblTicket]"
I've vba in Report onformat the vba code does some data copying to External Excel file (premade by vba).Now on first run, i got success.But on opening the excel file, it showed blank space + Error"File already opened"
No White Spreadsheet is shown with data to see into file, i created new excel file in windows, and inserted the vba created/exported file as an Obj.Now Obj is showing correct and full data with spreadsheet as normal view.
I have used the following script to export a subform to excel but it isn't working for a report.
The report name is spelled correctly etc... but the error message keeps saying error 2465 or if I enable the error handler it says application defined or object defined error.
I don't want to have to export the data to a table first, but if I have to then I guess I will have to.
Code: Sub fFunctionNameExportExcel(ctrl As IRibbonControl) 'print to excel Dim rst As DAO.Recordset Dim ApXL As Object Dim xlWBk As Object Dim xlWSh As Object Dim fld As DAO.Field Const xlCenter As Long = -4108
I have a linked table to a DB2 database. this table contains key-pair values and has about 140k records.
I use a Sub to update the value of a specific record.
The sub starts by opening the needed DAO recordset Then it uses the rs.Findfirst method It checks if rs.Nomatch is not true (so the records exists!) Then it starts updating the record with rs.edit rs!value1 = myvalue1, rs!value2 = myvalue 2 rs.Update There is where I get the '3021 No current record' error
I use the same sub on the same table to update to different parts. One part works the other gives me the error.