Excel: Read .dbf file from microsoft query (other sources) - vba

Enviroment: Microsoft Office 2010, Windows 10
I can not obtain this external data from my .dbf file using Microsoft Query, maybe my data source is incorrectly configured but I tried all the drivers that could handle this format, for example "Driver do Microsoft dBASE (*.dbf)", "Visual Fox Pro tables", etc. and choosed all the existing versions (III, IV and 5.0), then I get the error "imposible the access to the table x", so I'm not sure what it's not working here.
Making the connection through this tool from Excel in order to read the file is required but also VBA code are well accepted too.
This is a link to the zonas.dbf file:
https://ufile.io/vuhfk

Related

Import csv file to access database using visual basic

I'm very new to visual studio and visual basic.
I already studied the basics of visual basic so I tried stepping up a little and play with database in visual basic. I'm using visual studio 2010.
I first made an access database. I followed the instructions that I searched on the net on how to connect it to your visual basic program. Data>Show Data Source>Add Data Source> ...
But when I search on how to do it, I became really confuse because of these things:
Is vba and vb the same?
all the tutorials are for access but why do they still need to have a stringconnection when they already connect it using what I did?
they are searching for .mdb but the extension of my access database is .accdb?
they have an sql query for inserting the datas from the csv file but the pc that will be using the program don't have sql installed but mysql. Will it still work?
I'm still noob in these things so please if anyone can shed some light in these questions, thank you very much. >.<
VBA and VB 6.0 are almost the same. Main difference is that VBA is intended to be host in application like Excel, Word ....
BUT language you probably use with VS 2010 is VB.NET and that is something different. VB.NET is object oriented language which target .NET Runtime and Framewor. See Difference between Visual Basic 6.0 and VBA
Connection string is a string that specifies information about a data source and the means of connecting to it.
In .NET this describe (or can) path or location, provider, credentials and other informations. See MSDN Connection string in .NET
If I'm correct MDB is older format and ACCDB is format used by Microsoft Office Access 2007 and newer. Here is post how to connect to access db file: SQL connection string for microsoft access 2010 .accdb
But do you realy need to use acess database? There are better alternatives.
There is no need of real database engine for your scenario. You wanna to use standalone file as a datasource, dataprovider will be responsible for interaction with datasource. E.g. OleDB provider

Access database "Corrupt" in 2007; opens in 2010

I have an accdb database that is used by multiple individuals and stored on a network share. When opened in Acccess 2007 the following message appears:
Cannot open database "\\databasepath\filename.accdb". It may not be a database that your application recognizes or the file may be corrupt
Access 2010 opens the database with no problems.
What is the most common cause of this issue? I searched for database repair tools and can't find any Microsoft tools for accdb files (JetCompact didn't do it). I ran a compact and repair via Access 2010, did a save as locally and then copied it over to the share - no effect.
Other than magically upgrading all my users to Access 2010 (which won't happen) I'm in the dark here.
You may have some features you're using in 2010 that aren't supported in 2007.
Look here for more info.
Most likely someone opened it in 2010, edited your report and saved the change. This will break 2007 every time. 2010 is NOT backwards compatible with 2007
I would make a back-up, make another back-up and then first try importing all but the tables that contain attachments into a new database.
you can also check this: https://dba.stackexchange.com/questions/71906/ms-access-mdb-ldb-database-corrupted

reading excel server-side

I need to develop a service and install it into a w2003 box to read excel files a then process its info. The process is as follows, users will upload excel files using FTP and then my service must take those files, validate and then update a SQL Server DB.
The application runs fine on my computer but on the server it asks for the libraries but when I try to install the MS office 2003 Primary Interop Assemblies, system displays "Please install Microsoft Office 2003 before installing the product".
I'd prefer to stay away of any server upgrade as we should require OKs, etc.. so, is there a simple way to just read excel files without having to install any update in the server.
any comments are welcome.
Thanks,
m0dest0.
ps. using vb.net and vs 2008.
Using Interop on the server is NOT supported by MS - see http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257757#kb2
Since Windows Vista MS introduced several security-related measures which prevent a Windows Service from doing "desktop-like" things... which means you would have to circumvent several security measures to get it to work (NOT recommended!).
To deal with Excel in a server-scenario there are several options (free and commercial) out there:
I can recommend Aspose.Cells and Flexcel... didn't try SpreadsheetGear but hear+read lots of good things about it...
Free options (though for the newer xlsx format only!) are for example OpenXML 2 from MS and EPPlus.
For a solution with nothing to install on any recent versions of Windows Server..... I'm not sure the exact VB.NET code, but you should easily be able to do this on any machine using the Microsoft OLEDB drivers that should be available on any recent version of windows server or can be installed from a free download off of the Microsoft website for very old versions of windows server. I'll try to pseudo code this, so you will have to adapt it for VB.NET. Note that in order to reference your fields by name, the first row of the selected area in the worksheet must contain the fieldnames in the column values. Otherwise you will simply have to use numeric values to index each returned field by column position.
Set objExcelConnection = CreateObject("ADODB.Connection")
objExcelConnection.Provider = "Microsoft.Jet.OLEDB.4.0"
objExcelConnection.ConnectionString = "Data Source=d:\path\to\excel\file\on\your\server.xls;Extended Properties=""Excel 8.0;IMEX=1;"";"
objExcelConnection.CursorLocation = 3
objExcelConnection.Open
sSQL = "select * from [worksheetname$]"
set rsWorksheet = objExcelConnection.Execute(sSQL)
do while not rsWorksheet.Eof
sValue = rsWorksheet("FieldName")
rsWorksheet.MoveNext
loop
rsWorksheet.Close
set objExcelConnection = nothing
I use the Excel Data Reader (http://exceldatareader.codeplex.com/) when I need to process Excel files. It handles xls and xlsx files without a hitch, and I've got it running in a few applications on a server OS. It saves each sheet as a DataTable object, and each "cell" in the DataTable corresponds to the Excel cell with the same address. Depending on how you set up your SQL server link, there might not be too much conversion required to dump the contents into the DB.

Fox Pro 8 - Export to Spreadsheet

I don't have much programming knowledge, but I have a data set on a CD in the FoxPro format and I need to know if it can be exported to something like Google Docs in the form of a spreadsheet.
If you have any version of FoxPro or Visual FoxPro, you can use the COPY TO command or the Export Wizard to turn each table into an Excel spreadsheet (with some limitations). Excel can open some older format DBFs, so depending how old your data is, you may be able to just open it from Excel specifying "dBase files."
FoxPro tables can also be exported in CSV format, which a spreadsheet should be able to read. Again, you'd need FoxPro for that.
If you have the VFP ODBC driver, you can use to open the data and export it.

How to force SQL Server 2008 express import from Excel to a specific data type?

I'd like to force SQL Management Studio - Import Data - from XLS excel file to read one column as specific data type? It does a type guessing. My first N rows contain decimal data, but some later columns have also characters in there. I know I need to specify IMEX=1 in the connection string to the XLS file, but as far as I know this could be done only if I were using ADO.NET application to do it. (this forces Jet engine to honor registry setting HKML\Software\Microsoft\Jet\4.0\Engines\Excel\ImportMixedTypes which is set to Text).
It could also be done if I had developer/enterprise edition of sql server 2008, and editing DTS package to include the connection string. But I use Express edition that does not allow saving DTS packages - what are my other options? Thanks
Use the OLE DB Provier for Access Database Engine (or Jet depending on version of Excel), click the 'Properties' button to bring up the 'Data Link Properties' dialog, click the 'All' tab and in the list edit the 'Extended Properties' item to add IMEX=1.
Where to get the OLE DB provider? The version for the Access Database Engine, known as ACE, which was released as part of Access2007, can be used to open Jet 4.0 data sources including Excel spreadsheets. It can be downloaded from MSDN as 2007 Office System Driver: Data Connectivity Components. The stated supported operating systems are: Windows 7, Windows Vista, Windows Server 2008, Windows Server 2003 and Windows XP. There could be an equivalent for Access2010 but I'm out of the loop.
Add a first row having text data that you remove from the target table after importing the data.