Data Inegration...

aman_mbsaman_mbs Member Posts: 158
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

Answers

  • krikikriki Member, Moderator Posts: 9,110
    You can try 2 things (I suppose [Poids Additionnel] is some decimal):
    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:
    txtHelp := FORMAT(varFldCollection.Item(8).Value);
    EVALUATE(decHelp,txtHelp);
    FieldVar.VALIDATE(decHelp);
    
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


  • aman_mbsaman_mbs Member Posts: 158
    HI thanks for the Reply,

    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.
    Aman Kumar Gupta
  • krikikriki Member, Moderator Posts: 9,110
    In case you have problems with NULL-values, use this:
    IF FORMAT(varFldCollection.Item(8).ActualSize) <> FORMAT(0) THEN
      FieldVar.VALIDATE(FORMAT(varFldCollection.Item(8).Value));
    
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


  • aman_mbsaman_mbs Member Posts: 158
    Hey! Thanks a Lot for your Kind help...

    Cheers!!! =D>
    Aman Kumar Gupta
Sign In or Register to comment.