Hello!!
I have tried many ways/tutorials on how to export data from MATLAB to Ms Access, but so far, I haven't fully succeed. I could export all my dataset into 1 column instead of 1 row.
Could you guys please help me??
Thanks in advance.
Here's my code:
colnames - cell array with Column Names <1 x 44>
data - cell array with data set to export to Ms Access <15 x 44>
handles.DB.con - Database connection object.;
datainsert(handles.DB.con,'databaseTable', colnames, data);
error:
Error using database/datainsert (line 104)
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

5 Kommentare

Walter Roberson
Walter Roberson am 14 Okt. 2013
Complete speculation: perhaps handles.DB.con is not a valid connection at that time. Perhaps it is [] the empty array; perhaps the connection has not been appropriately opened after it was configured.
Friedrich
Friedrich am 14 Okt. 2013
@Walter: thats unlikely. In that case you would get an error telling you undefined function datainsert for input or type struct.
The error comes from the driver directly. Are you sure all those columns exist in your database? AFAIK the insert function gives a better error message. Maybe try insert to see if you get a better error.
BSantos
BSantos am 14 Okt. 2013
Well, the connection is okay. I get no error message.
Instance: ''
UserName: ''
Driver: 'sun.jdbc.odbc.JdbcOdbcDriver'
URL: [1x130 char]
Constructor: [1x1 com.mathworks.toolbox.database.databaseConnect]
Message: []
Handle: [1x1 sun.jdbc.odbc.JdbcOdbcConnection]
TimeOut: 0
AutoCommit: 'on'
Type: 'Database Object'
If I try Insert function I get this error:
insert(handles.DB.con,'databaseTable', colnames, data);
ERROR:
[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.
all columns exist in my DB as I copied them 1 by 1, just to make sure! :)
Any ideas??
Thank you very much!!!!
Friedrich
Friedrich am 14 Okt. 2013
I assume it's related to a column name. Maybe one contains a reserved word. Can you post all the columnnames here? The easiest would be
celldisp(colnames)
BSantos
BSantos am 14 Okt. 2013
What kind of names are reserved? Could a column named "Date" be a problem??

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Friedrich
Friedrich am 14 Okt. 2013
Bearbeitet: Friedrich am 14 Okt. 2013

0 Stimmen

Hi,
yes DATE is a reserved keyword. For a full list see here. You can stil use it but you should escape any column names which are also keywords or functions. In MS Access it should be [] brackets. So instead of 'Date' use '[Date]' as column name.

3 Kommentare

BSantos
BSantos am 14 Okt. 2013
I still get the same errors even if I change the Column Name..
Friedrich
Friedrich am 14 Okt. 2013
Bearbeitet: Friedrich am 14 Okt. 2013
Maybe there are others? The error is given from the driver directly and not from MATLAB. It must be something with the syntax which MATLAB uses to run the SQL command internally.
Maybe start with a dummy database containing one column name and see if it works. if so add a 2nd column and try again. This will lead to the column name which causes the troubles here.
BSantos
BSantos am 14 Okt. 2013
So, I just tried with INSERT function, and now all is okay!
THANK YOU very much!!!!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Gefragt:

am 14 Okt. 2013

Kommentiert:

am 14 Okt. 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by