طريقة نسخ بيانات ملف Excel الى قاعدة بيانات Access بأستخدام جملة SQL

اذهب الى الأسفل

طريقة نسخ بيانات ملف Excel الى قاعدة بيانات Access بأستخدام جملة SQL

مُساهمة من طرف م/موسي في السبت سبتمبر 21, 2013 2:50 pm

بسم الله الرحمن الرحيم

بالامس كتبت مقال عن كيفية نسخ قاعدة بيانات أكسس الى ملف أكسل بأستخدام جملة sql على الرابط التالى :


لكن فى هذا المقال سنتعلم العكس بمعنى  نسخ بيانات ملف Excel الى قاعدة بيانات Access بأستخدام جملة SQL وذلك على النحو التالى :

_ فى البداية سنحتاج الى ادراج المكتبة ADO و المكتبة ADOX

_ نقوم بالاعلان عن متغير و تخزين مسار و اسم ملف Excel فيه وذلك على النحو التالى :

الكود:
Dim cSource As String
cSource = App.Path & _
    IIf(Right$(App.Path, 1) <> "\", "\", "") & _
    "books.xls"
_ نقوم بالاعلان عن متغير اخر لتخزين فية اسم ومسار قاعدة البيانات المراد نقل البيانات اليها وذلك على النحو التالى :

الكود:
Dim cTarget As String
cTarget = App.Path & _
    IIf(Right$(App.Path, 1) <> "\", "\", "") & _
    "books.mdb"
_ نقوم باستخدام جملة شرطية للتأكد من وجود مصدر البيانات Excel فان كان موجود يتم استخدام كائنات المكتبة ADOX للاتصال به و ذلك على النحو التالى :
الكود:
If Dir(cTarget) = "" Then
    Dim oCat As ADOX.Catalog
    Set oCat = New ADOX.Catalog
    oCat.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & cTarget
End If
_ نقوم بعد ذلك باستخدام كائنات المكتبة ADO لفتح قاعدة البيانات أكسس وذلك على النحو التالى :
الكود:
Dim oCon As ADODB.Connection
Set oCon = New ADODB.Connection
Dim cSQL As String

With oCon
    .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
        & _
        "Data Source=" & cSource & ";" & _
        "Extended Properties=Excel 8.0"
    .Open
_ نقوم بعد ذلك ببناء جملة الاستعلام التى ستقوم بمهمة نسخ البيانات من أكسل الى أكسس و ذلك على النحو التالى :
الكود:
cSQL = "SELECT * " & _
        "INTO [Table1] " & _
        "IN '" & cTarget & "' " & _
        "FROM [Sheet1$]"
    .Execute cSQL


و اليكم الكود النهائى على النحو التالى :

الكود:
Dim cSource As String
cSource = App.Path & _
    IIf(Right$(App.Path, 1) <> "\", "\", "") & _
    "books.xls"

Dim cTarget As String
cTarget = App.Path & _
    IIf(Right$(App.Path, 1) <> "\", "\", "") & _
    "books.mdb"

If Dir(cTarget) = "" Then
    Dim oCat As ADOX.Catalog
    Set oCat = New ADOX.Catalog
    oCat.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & cTarget
End If

Dim oCon As ADODB.Connection
Set oCon = New ADODB.Connection
Dim cSQL As String

With oCon
    .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
        & _
        "Data Source=" & cSource & ";" & _
        "Extended Properties=Excel 8.0"
    .Open

    cSQL = "SELECT * " & _
        "INTO [Table1] " & _
        "IN '" & cTarget & "' " & _
        "FROM [Sheet1$]"
    .Execute cSQL
End With

ارجوا ان يكون الدرس مفيد و تحياتى لكم
avatar
م/موسي
الاشراف
الاشراف

تاريخ التسجيل : 18/02/2011
المساهمات : 130
النقاط : 253
التقيم : 9
الدولة : تونس
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: طريقة نسخ بيانات ملف Excel الى قاعدة بيانات Access بأستخدام جملة SQL

مُساهمة من طرف end.sub في الثلاثاء أكتوبر 08, 2013 7:55 am

جزاك الله خيرا أخى الفاضل
avatar
end.sub
.....
.....

تاريخ التسجيل : 15/08/2013
المساهمات : 70
النقاط : 131
التقيم : 9
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى