Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Uploading Data

Former Member
0 Likes
236

Hi,

Can anyone send me description or code to create a connection to MSACCESS Database and Upload Data from there into my SAP Tables. I dont want to use EXCEL i only want to use Access only.

Thanks,

Usman Malik

1 REPLY 1
Read only

former_member480923
Active Contributor
0 Likes
217

Please find the code below:

REPORT  zdata_access_sap
MESSAGE-ID 00
NO STANDARD PAGE HEADING
LINE-SIZE 200
LINE-COUNT 65.

INCLUDE ole2incl.

DATA: con TYPE ole2_object,
rec TYPE ole2_object.

DATA sql(1023).

DATA: BEGIN OF spl OCCURS 0,
val(1023),
END OF spl.

DATA: BEGIN OF i1 OCCURS 0,
f1 TYPE i ,
f2(10),
f3(10),
END OF i1.

IF con-header IS INITIAL OR con-handle = -1.
  CREATE OBJECT con 'adodb.connection'.
  IF NOT sy-subrc = 0.
    EXIT.
  ENDIF.

  CREATE OBJECT rec 'adodb.recordset'.
  IF NOT sy-subrc = 0.
    EXIT.
  ENDIF.

ENDIF.

* MDB Connetion Infomations ….
CONCATENATE 'provider=' '"Microsoft.Jet.OLEDB.4.0”' ';'
into sql.
CONCATENATE sql 'password=' '" "' ';'
INTO sql.
CONCATENATE sql 'user id=' '"admin"' ';'
INTO sql.
CONCATENATE sql 'data source=' '"c:mm.mdb"' ';'
into sql.
CONCATENATE sql 'mode=' '"share deny none"'
INTO sql.

* MDB Connection …
CALL METHOD OF con 'open'
  EXPORTING #1 = sql.
*

* Query (Insert) Statement …
sql = 'insert INTO [test] VALUES('.
CONCATENATE sql '"a"' ',' '"1"' ')' into sql.

* Query Run …
CALL METHOD OF rec 'open'
  EXPORTING #1 = sql
  #2 = con
  #3 = '1'.

* Query (Select) Statement …
sql = 'select * from[test]'.

* Query Run …
CALL METHOD OF rec 'open'
  EXPORTING #1 = sql
  #2 = con
  #3 = '1'.

* Selecting MDB Record Into SAP Internal Table …
DO.
  CALL METHOD OF rec 'getstring' = sql
    EXPORTING #1 = '2' "do not modify!
    #2 = 1 "do not modify!
    #3 = '|' "do not modify!
    #4 = '|'."do not modify!

if sy-subrc eq 0.
  REFRESH spl. CLEAR spl.
  SPLIT sql AT '|' INTO TABLE spl.
  LOOP AT spl.
    CASE sy-tabix.
      WHEN 1.
        i1-f1 = spl-val.
      WHEN 2.
        i1-f2 = spl-val.
      WHEN OTHERS.
        i1-f3 = spl-val.
    ENDCASE.
  ENDLOOP.
  APPEND i1. CLEAR i1.
ELSE.
  EXIT.
ENDIF.

ENDDO.

* Result Writing …
LOOP AT i1.
WRITE: AT /1(10) i1-f1,
AT (10) i1-f2, AT (20) i1-f3.
ENDLOOP.

* Connetion Close & Destroy
FREE OBJECT con.
FREE OBJECT rec.

Hope That Helps

Anirban M.