Dear All,
While accessing the data from the Microsoft Access I am facing the problem which ever field i am pulling from MS Access should have the value in side it else while importing the data it shows the following error and data import stops. But as soon as i put some value in those fields it imports the data. The error is as follows:-
"This Data type is not supported by C\Side you can access data from any of the following VT_Void, VT_I2, VT_14...."
Code Is as follows:-
Constr := 'Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\GML\GML.mdb;Uid=Admin;Pwd=;';
StrSql := 'SELECT Article, [Designation Commerciale], Dessin, [Sous Rayon], [Categorie Metal], Metaux, [Poids Metal],'+
'[Poids Additionnel], Traitements, Pierres, Famille, [Prix Vente Diamants], [Prix Vente Autres Non Metaux],' +
'[Prix Vente Facon] FROM Article';
CREATE(varRecordSet);
varRecordSet.Open(StrSql, Constr);
varRecordSet.MoveFirst;
RecordVar.OPEN(50002);
REPEAT
varFldCollection := varRecordSet.Fields;
RecordVar.RESET;
RecordVar.INIT;
FieldVar := RecordVar.FIELDINDEX(1);
FieldVar.VALIDATE(varFldCollection.Item(0).Value);
FieldVar := RecordVar.FIELDINDEX(2);
FieldVar.VALIDATE(varFldCollection.Item(1).Value);
FieldVar := RecordVar.FIELDINDEX(3);
FieldVar.VALIDATE(varFldCollection.Item(2).Value);
FieldVar := RecordVar.FIELDINDEX(4);
FieldVar.VALIDATE(varFldCollection.Item(3).Value);
FieldVar := RecordVar.FIELDINDEX(5);
FieldVar.VALIDATE(varFldCollection.Item(4).Value);
FieldVar := RecordVar.FIELDINDEX(6);
FieldVar.VALIDATE(varFldCollection.Item(5).Value);
FieldVar := RecordVar.FIELDINDEX(7);
FieldVar.VALIDATE(varFldCollection.Item(6).Value);
FieldVar := RecordVar.FIELDINDEX(8);
FieldVar.VALIDATE(varFldCollection.Item(7).Value);
FieldVar := RecordVar.FIELDINDEX(10);
FieldVar.VALIDATE(FORMAT(varFldCollection.Item(8).Value));//Error Line
FieldVar := RecordVar.FIELDINDEX(11);
FieldVar.VALIDATE(varFldCollection.Item(10).Value);
FieldVar := RecordVar.FIELDINDEX(12);
FieldVar.VALIDATE(varFldCollection.Item(11).Value);
FieldVar := RecordVar.FIELDINDEX(13);
FieldVar.VALIDATE(varFldCollection.Item(12).Value);
FieldVar := RecordVar.FIELDINDEX(14);
FieldVar.VALIDATE(varFldCollection.Item(13).Value);
RecordVar.INSERT;
cFlag := 1;
varRecordSet.MoveNext
UNTIL varRecordSet.EOF = TRUE;
_________________
Aman Kumar Gupta
Aman Kumar Gupta
0
Answers
Change '[Poids Additionnel]' in
'CAST([Poids Additionnel] as decimal) as Poids Additionnel'
or
'CAST([Poids Additionnel] as float) as Poids Additionnel'
or
'CAST([Poids Additionnel] as real) as Poids Additionnel'
Another way:
No PM,please use the forum. || May the <SOLVED>-attribute be in your title!
But i have problem in Traitements fields which is a TEXT field this problem come if data is blank in any of the record like if there are 100 records out which Traitements field in not filled in 1 record it will not import the data.
No PM,please use the forum. || May the <SOLVED>-attribute be in your title!
Cheers!!! =D>