查询在32位PC上运行

2020-09-19 03:02发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我面临通过Excel文件在SAP上运行Query的问题。 根据一些同事的说法,他们认为主要的问题是我的PC是64位。

您知道这是否真的有问题吗?

如果有问题,您可以在这里使用我正在使用的代码。 还有其他运行方式吗?

*************************************************** **************************************************

将R3视作对象

Sub TESTE()

昏暗x作为字符串

x = PR_report2(" NOME DA QUERY"," NOME DO GRUPO"," VARIANTE",True," ABA DO EXCEL")

x = PR_report2(" XXX"," XX"," XXX",True," DTbase")

结束子

函数PR_report2(Q作为字符串,U作为字符串,d作为字符串,man作为布尔值,vTabela作为字符串)作为字符串

将SAP作为新的SAPFunction

将QUERY作为对象,将SELECTION_TABLE作为对象,结果

将LDATA作为对象,将LISTDESC作为对象,将FPAIRS作为对象,将行作为对象

将iRow设置为长,将iStartStringRow设置为长,将DataIndex设置为长,将记录数设置为长,将记录长度设置为长

将NumberofFields设置为整数,将FieldLength设置为整数,将iRec设置为长整数,将iField设置为整数

将DATALINE设为字符串,将ControlPosition设为字符串

将SAPRecords()更改为记录

将a设为字符串,将x设为整数,将van设为布尔值

将cn设为新的ADODB.Connection

将rs视作新的ADODB.Recordset

将R3视作对象

'设置db = CurrentDb

设置R3 = CreateObject(" SAP.Functions")

设置R3 = CreateObject(" SAP.Functions")

R3.Connection.Client =" 200"

R3.Connection.User =" XXX"

R3.Connection.Language =" EN"

R3.Connection.Password =" XXX"

R3.Connection.SystemNumber =" 00"

R3.Connection.System =" PRO"

R3.Connection.GroupName =" BRIDGE"

R3.Connection.MessageServer =" SIte"

如果R3.Connection.Logon(0,True)<> True然后

如果R3.Connection.Logon(0,False)<> True然后

退出功能

如果结束

如果结束

TBL = vTabela

设置QUERY = R3.Add(" RSAQ_REMOTE_QUERY_CALL")

设置SELECTION_TABLE = QUERY.tables(" SELECTION_TABLE")

QUERY.exports(" WORKSPACE")=""

QUERY.exports(" QUERY")= Q

QUERY.exports(" USERGROUP")= U

QUERY.exports(" VARIANT")= d

QUERY.exports(" SKIP_SELSCREEN")=" X"

QUERY.exports(" DATA_TO_MEMORY")=" X"

QUERY.exports(" EXTERNAL_PRESENTATION")=""

结果= QUERY.Call

如果结果= True,那么

如果man = False,那么

R3.Connection.Logoff

如果结束

设置LDATA = QUERY.tables(" LDATA")

设置LISTDESC = QUERY.tables(" LISTDESC")

设置FPAIRS = QUERY.tables(" FPAIRS")

R3.Connection.Logoff

对于iRow = iStartStringRow +1至(LDATA.RowCount)

DATALINE = DATALINE&LDATA(iRow,1)

下一个iRow

DataIndex = 1

记录数= 0

RecordLength = 0

执行直到DataIndex +1> = Len(DATALINE)

记录数=记录数+ 1

NumberofFields = 0

FieldLength = 0

ControlPosition =""

直到ControlPosition =";"

FieldLength = CInt(Mid(DATALINE,DataIndex,3))'将字符串转换为整数

NumberofFields = NumberofFields +1

ReDim保留SAPRecords(RecordofRecords)

ReDim保留SAPRecords(NumberofRecords).RecordField(NumberofFields)

SAPRecords(NumberofRecords).RecordField(NumberofFields).FieldLgth = FieldLength

SAPRecords(NumberofRecords).RecordField(NumberofFields).FieldContents = Mid(DATALINE,DataIndex + 4,FieldLength)

ControlPosition = Mid(DATALINE,DataIndex + 4 + FieldLength,1)

DataIndex = DataIndex + FieldLength + 5

循环

循环

床单(vTabela)。选择

'Application.Cells.Select

范围(" A2:AO2")。选择'SELECIONA O QUE QUER

Range(Selection,Selection.End(xlDown))。选择'VAI PARA A ULTIMA LINHA DE DADOS SELECIONADO

选择。清除

对于iRec = 2到记录数

对于iField = 1到LISTDESC.RowCount

单元格(iRec,iField)。值= SAPRecords(iRec).RecordField(iField).FieldContents'mezoertekek kiirasa

下一个iField

'rs.Update

下一个iRec

'ConexaoSQLServer cn

'rs.Open" SELECT * FROM"&TBL&"",cn,adOpenDynamic,adLockOptimistic

'对于iRec = 1到记录数

'rs.AddNew

'对于iField = 1到LISTDESC.RowCount

'rs.Fields(iField-1).Value = SAPRecords(iRec).RecordField(iField).FieldContents'mezoertekek kiirasa

'下一个iField

'rs.Update

'下一个iRec

'rs.Close

'cn.Close

PR_report1 ="确定"

其他

如果man = False,那么

R3.Connection.Logoff

如果结束

PR_report2 = QUERY.exception

如果结束

结束功能

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我面临通过Excel文件在SAP上运行Query的问题。 根据一些同事的说法,他们认为主要的问题是我的PC是64位。

您知道这是否真的有问题吗?

如果有问题,您可以在这里使用我正在使用的代码。 还有其他运行方式吗?

*************************************************** **************************************************

将R3视作对象

Sub TESTE()

昏暗x作为字符串

x = PR_report2(" NOME DA QUERY"," NOME DO GRUPO"," VARIANTE",True," ABA DO EXCEL")

x = PR_report2(" XXX"," XX"," XXX",True," DTbase")

结束子

函数PR_report2(Q作为字符串,U作为字符串,d作为字符串,man作为布尔值,vTabela作为字符串)作为字符串

将SAP作为新的SAPFunction

将QUERY作为对象,将SELECTION_TABLE作为对象,结果

将LDATA作为对象,将LISTDESC作为对象,将FPAIRS作为对象,将行作为对象

将iRow设置为长,将iStartStringRow设置为长,将DataIndex设置为长,将记录数设置为长,将记录长度设置为长

将NumberofFields设置为整数,将FieldLength设置为整数,将iRec设置为长整数,将iField设置为整数

将DATALINE设为字符串,将ControlPosition设为字符串

将SAPRecords()更改为记录

将a设为字符串,将x设为整数,将van设为布尔值

将cn设为新的ADODB.Connection

将rs视作新的ADODB.Recordset

将R3视作对象

'设置db = CurrentDb

设置R3 = CreateObject(" SAP.Functions")

设置R3 = CreateObject(" SAP.Functions")

R3.Connection.Client =" 200"

R3.Connection.User =" XXX"

R3.Connection.Language =" EN"

R3.Connection.Password =" XXX"

R3.Connection.SystemNumber =" 00"

R3.Connection.System =" PRO"

R3.Connection.GroupName =" BRIDGE"

R3.Connection.MessageServer =" SIte"

如果R3.Connection.Logon(0,True)<> True然后

如果R3.Connection.Logon(0,False)<> True然后

退出功能

如果结束

如果结束

TBL = vTabela

设置QUERY = R3.Add(" RSAQ_REMOTE_QUERY_CALL")

设置SELECTION_TABLE = QUERY.tables(" SELECTION_TABLE")

QUERY.exports(" WORKSPACE")=""

QUERY.exports(" QUERY")= Q

QUERY.exports(" USERGROUP")= U

QUERY.exports(" VARIANT")= d

QUERY.exports(" SKIP_SELSCREEN")=" X"

QUERY.exports(" DATA_TO_MEMORY")=" X"

QUERY.exports(" EXTERNAL_PRESENTATION")=""

结果= QUERY.Call

如果结果= True,那么

如果man = False,那么

R3.Connection.Logoff

如果结束

设置LDATA = QUERY.tables(" LDATA")

设置LISTDESC = QUERY.tables(" LISTDESC")

设置FPAIRS = QUERY.tables(" FPAIRS")

R3.Connection.Logoff

对于iRow = iStartStringRow +1至(LDATA.RowCount)

DATALINE = DATALINE&LDATA(iRow,1)

下一个iRow

DataIndex = 1

记录数= 0

RecordLength = 0

执行直到DataIndex +1> = Len(DATALINE)

记录数=记录数+ 1

NumberofFields = 0

FieldLength = 0

ControlPosition =""

直到ControlPosition =";"

FieldLength = CInt(Mid(DATALINE,DataIndex,3))'将字符串转换为整数

NumberofFields = NumberofFields +1

ReDim保留SAPRecords(RecordofRecords)

ReDim保留SAPRecords(NumberofRecords).RecordField(NumberofFields)

SAPRecords(NumberofRecords).RecordField(NumberofFields).FieldLgth = FieldLength

SAPRecords(NumberofRecords).RecordField(NumberofFields).FieldContents = Mid(DATALINE,DataIndex + 4,FieldLength)

ControlPosition = Mid(DATALINE,DataIndex + 4 + FieldLength,1)

DataIndex = DataIndex + FieldLength + 5

循环

循环

床单(vTabela)。选择

'Application.Cells.Select

范围(" A2:AO2")。选择'SELECIONA O QUE QUER

Range(Selection,Selection.End(xlDown))。选择'VAI PARA A ULTIMA LINHA DE DADOS SELECIONADO

选择。清除

对于iRec = 2到记录数

对于iField = 1到LISTDESC.RowCount

单元格(iRec,iField)。值= SAPRecords(iRec).RecordField(iField).FieldContents'mezoertekek kiirasa

下一个iField

'rs.Update

下一个iRec

'ConexaoSQLServer cn

'rs.Open" SELECT * FROM"&TBL&"",cn,adOpenDynamic,adLockOptimistic

'对于iRec = 1到记录数

'rs.AddNew

'对于iField = 1到LISTDESC.RowCount

'rs.Fields(iField-1).Value = SAPRecords(iRec).RecordField(iField).FieldContents'mezoertekek kiirasa

'下一个iField

'rs.Update

'下一个iRec

'rs.Close

'cn.Close

PR_report1 ="确定"

其他

如果man = False,那么

R3.Connection.Logoff

如果结束

PR_report2 = QUERY.exception

如果结束

结束功能

付费偷看设置
发送
1条回答
灬番茄
1楼-- · 2020-09-19 03:13

大家好,

在同一代码上,现在面临以下错误:RUN-TIME 61704-内部应用错误

有人知道这是什么吗?

一周热门 更多>