엑셀 시트에서 AX로 가져옵니다. 따라서 프로세스 : Excel에서 레코드를 찾아 임시 테이블에 추가하고 그리드에 채 웁니다. 이것은 일어나는 과정입니다. 1400 레코드 미만의 레코드를 사용할 때 문제없이 그리드로 가져옵니다. 66000 개의 레코드를 가져올 때 위의 오류가 발생합니다. 누군가 제가 한 번에 60000 개의 레코드를 가져올 수 있도록해야한다고 제안 할 수 있습니까? 나는 엑시트를 재시작하여 온라인으로 제안 된 엑셀 시트를 새로 만들었습니다 ..... 아무 것도 효과가 없었습니다.'Range'클래스의 COM 개체에서 'value'메서드가 오류 코드 0x800A03EC (<unknown>)을 반환했습니다. 이는 <unknown>을 의미합니다. AX 2012
Q
'Range'클래스의 COM 개체에서 'value'메서드가 오류 코드 0x800A03EC (<unknown>)을 반환했습니다. 이는 <unknown>을 의미합니다. AX 2012
0
A
답변
2
예, 가져올 때마다 Excel에이 문제가 발생했을 때 많은 행이 있습니다. 행 수가 적다면 완벽하게 작동합니다.
이 경우 항상 CSV 가져 오기의 Excel 가져 오기를 변경하십시오. csv 파일을 가져 오는 코드는 결코 실패하지 않고 훌륭하게 작동합니다.
여기에서는 3 행의 CSV 파일을 가져 오는 예제를 남깁니다.
코드 :
static void Stack(Args _args)
{
AsciiIo asciiIo;
container con;
FileIoPermission perm;
boolean _CortarProceso;
IO_Status aa;
str filename;
str _row1, _row2, _row3;
Dialog dialog;
DialogField dialogFileName;
;
dialog = new Dialog("Select CSV File");
dialogFileName = dialog.addField(ExtendedTypeStr("FilenameOpen"),"Path File:");
if (dialog.run())
{
filename = dialogFileName.value();
}
if (!filename)
{
return;
}
perm = new FileIoPermission(filename, "R");
perm.assert();
asciiIo = new AsciiIo(filename, "R");
asciiIo.inFieldDelimiter(";");
if (asciiIo != null)
{
con = asciiIo.read();
while((asciiIo.status() == IO_Status::Ok) && (!_CortarProceso)){
_Row1 = conPeek(con, 1); //Row1
_Row2 = conPeek(con, 2); //Row2
_Row3 = conPeek(con, 3); //Row3
if(_row1 != ""){
//Your Code...
//Your Code...
//Your Code...
//Your Code...
//Your Code...
}else{
_CortarProceso = true;
}
con = asciiIo.read();
}
}
info("Process End");
}
원하는 동작, 특정 문제 또는 오류 재현하는 데 필요한 가장 짧은 코드를 포함해야 디버깅 도움 ("왜이 코드가 작동하지?")을 찾는
질문 그것은 질문 자체에 있습니다. 분명한 문제 성명이없는 질문은 다른 독자에게 유용하지 않습니다. 참조 : [최소한의 완전하고 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve). –