Article View: borland.public.cppbuilder.database.ado
Article #118Re: import excel file to access database
From: Vassiliev V. V.
Date: Mon, 03 Sep 2007 19:41
Date: Mon, 03 Sep 2007 19:41
137 lines
5725 bytes
5725 bytes
Try to open query (with ADOQuery1->Active = true):
SELECT Column1, Column2
FROM [Sheet1$] IN ""[Excel 8.0;Database=c:\testing.xls]
There should be no parameters in query - Column1, Column2 are column names,
not parameters. If it fails, try:
SELECT *
FROM [Sheet1$] IN ""[Excel 8.0;Database=c:\testing.xls]
it will show you column names how Jet driver sees them. Then adjust insert
query should be easy
//------------------------------------------
Regards,
Vassiliev V. V.
http://www.managed-vcl.com - using .Net objects in Delphi for Win32 +
ADO.Net
http://www.oledbdirect.com - The fastest way to access MS SQL Server,
MS Jet (Access) and Interbase (through OLEDB)
"Tomislav Hundric'" <rifnet@gmail.com> �������/�������� � ��������
���������: news:46dc4fec@newsgroups.borland.com...
> Thanks again on your help, I faced problems once again, I'm sorry but the
> following is giving me a headache:
>
> Access database:
> ID (AutoNumber)
> Field1 (Text)
> Field2 (Text)
>
> ADOQuery1
> ParamCheck=false
> Parameters
> Column1
> Column2
> SQL
> INSERT INTO Test (Field1, Field2)
> SELECT Column1, Column2
> FROM [Sheet1$] IN ""[Excel 8.0;Database=c:\testing.xls]
>
> Excel file:
> Column1 Column2
> 1.Test11 Test21
> 2.Test12 Test22
> 3.Test13 Test23
>
> Form
> void __fastcall TForm1::Button1Click(TObject *Sender)
> {
> ADOQuery1->ExecSQL();
> }
>
> So everything goes well, but when I open database file in access, there
> are two empty rows created. I don't know why there are two (not three)
> rows created and why are they empty.
>
> Thanks in advance,
> Tomislav.
>
>
>
> Vassiliev V. V. wrote:
>> Set ParamCheck to false. Otherwise it treats :anything as parameter, in
>> this case c:\myxls.xls. Use also ExecSQL - this query does not return any
>> data.
>>
>> //------------------------------------------
>> Regards,
>> Vassiliev V. V.
>> http://www.managed-vcl.com - using .Net objects in Delphi for Win32 +
>> ADO.Net
>> http://www.oledbdirect.com - The fastest way to access MS SQL Server,
>> MS Jet (Access) and Interbase (through OLEDB)
>>
>>
>> "Tomislav Hundric'" <rifnet@gmail.com> �������/�������� � ��������
>> ���������: news:46dc2b02@newsgroups.borland.com...
>>> First of all thank you on your answer and sorry for my late response,
>>> I'm using ADOConnection and ADOQuery, so I've tried to enter code you've
>>> posted to SQL of ADOQuery, but I can't seem to make connection to excel
>>> file.
>>>
>>> using your code:
>>>
>>>> INSERT INTO MyTable(Col1, Col2)
>>>> SELECT Col1, Col2
>>>> FROM [Sheet1$] IN ""[Excel 8.0;Database=c:\myxls.xls]
>>> and changing ADOQuery1->Active = false to ADOQuery1->Active = true
>>>
>>> I get error: "Parameter object is improperly defined. Inconsistent or
>>> incomplete information was provided."
>>>
>>> First I thought quotation marks were misplaced, but I've tried every
>>> possible position without success.
>>>
>>>
>>> I get the syntax, but don't know what to define in from clause, do I
>>> need to add something else like :
>>> FROM [Sheet1$] IN ['Microsoft.Jet.OLEDB.4.0',
>>> 'Excel 8.0;Database=C:\testing.xls;']
>>>
>>> Thanks in advance,
>>> Tomislav.
>>>
>>>
>>> Vassiliev V. V. wrote:
>>>> Connect to Access database and execute:
>>>>
>>>> INSERT INTO MyTable(Col1, Col2)
>>>> SELECT Col1, Col2
>>>> FROM [Sheet1$] IN ""[Excel 8.0;Database=c:\myxls.xls]
>>>>
>>>> [Sheet1] - named diapason, [Sheet1$] - sheet (if it does not work, try
>>>> [$Sheet1]), [Sheet1$B5:C10] - cells range.
>>>>
>>>> //------------------------------------------
>>>> Regards,
>>>> Vassiliev V. V.
>>>> http://www.managed-vcl.com - using .Net objects in Delphi for Win32 +
>>>> ADO.Net
>>>> http://www.oledbdirect.com - The fastest way to access MS SQL Server,
>>>> MS Jet (Access) and Interbase (through OLEDB)
>>>>
>>>>
>>>> "Tomislav Hundric'" <rifnet@gmail.com> �������/�������� � ��������
>>>> ���������: news:46dae1d4$1@newsgroups.borland.com...
>>>>> Please help,
>>>>> I need to populate database table from excel file. My database table
>>>>> has same fields as excel file has columns. I use ADO connection to
>>>>> connect to database. Can anyone give me some guide lines or example
>>>>> how to do this.
>>>>>
>>>>> Thanks in advance.
>>
Technical Details
Message-ID:
<46dc6351@newsgroups.borland.com>Path:
arc1-ca.pugleaf.net!g2news2.google.com!news1.google.com!news.glorb.com!newsfeeds.ihug.co.nz!ihug.co.nz!newsgroups.borland.com!not-for-mailReferences:
<46dae1d4$1@newsgroups.borland.com> <46dbd9c5@newsgroups.borland.com> <46dc2b02@newsgroups.borland.com> <46dc41e1$1@newsgroups.borland.com> <46dc4fec@newsgroups.borland.com>Show Full Headers
Complete Article Headers
X-Google-Thread: 10698b,da0a6137b1dabb49 X-Google-Attributes: gid10698b,public,usenet X-Google-Language: ENGLISH,ASCII From: "Vassiliev V. V." <support@oledbdirect.com> Newsgroups: borland.public.cppbuilder.database.ado References: <46dae1d4$1@newsgroups.borland.com> <46dbd9c5@newsgroups.borland.com> <46dc2b02@newsgroups.borland.com> <46dc41e1$1@newsgroups.borland.com> <46dc4fec@newsgroups.borland.com> Subject: Re: import excel file to access database Date: Mon, 3 Sep 2007 23:41:01 +0400 Lines: 139 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.3138 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3138 X-RFC2646: Format=Flowed; Response X-Antivirus: avast! (VPS 000772-0, 03.09.2007), Outbound message X-Antivirus-Status: Clean NNTP-Posting-Host: 85.93.138.132 Message-ID: <46dc6351@newsgroups.borland.com> X-Trace: newsgroups.borland.com 1188848465 85.93.138.132 (3 Sep 2007 12:41:05 -0700) Path: arc1-ca.pugleaf.net!g2news2.google.com!news1.google.com!news.glorb.com!newsfeeds.ihug.co.nz!ihug.co.nz!newsgroups.borland.com!not-for-mail