اذهب الي المحتوي
أوفيسنا

هل نستطيع جلب حقل او اثنين من الاكسال الى اكسيس


الردود الموصى بها

السلام عليكم و رحمة الله و بركاته اساتذتي الافاضل هذا بالنسبة لاستيراد جدول كامل من الاكسال الى الاكساس

و في  عندما اريد جلب حقل او اثنين فقط من جدول اكسال لاضافتهما الى جدول موجود بالاكسيس 

مثال :

لي جدول على الاكسال يحتوي على

1/ الاسم و اللقب 

2/ تاريخ الولادة 

3/ الجنس 

4/ اسم الاب 

و جدول على الاكسيس يحتوي 

1/ الاسم و اللقب 

2/ تاريخ الولادة 

3/ الجنس 

4/ اسم الاب 

5/ القسم 

6/ المنحة 

7/ الحالة 

 

لكنني اريد جلب الحقول التالية من الاكسال و اضافتها مكان نفس الحقول  في الاكسيس 

1/ الاسم و اللقب 

2/ تاريخ الولادة 

3/ الجنس 

4/ اسم الاب 

حيث ياخذ حقل :

الاسم و اللقب) من جدول الاكسال مكان حقل (الاسم و اللقب) بجدول الاكسيس 

تاريخ الولادة) من جدول الاكسال مكان حقل (تاريخ الولادة) بجدول الاكسيس 

الجنس ) من جدول الاكسال مكان حقل (الجنس ) بجدول الاكسيس 

و هكذا دواليك 

 

شكرا على كل حال و على المساعدة و النصح و الارشاد الذي تقدمونه لكل مبتدئ بهذا المنتدى الرائع 

رابط هذا التعليق
شارك

ارفق مثال لكي يتم التعديل عليه

او اتبع الطريقة التالية

اولا ارفق استدعي المكتبة التالية

image.png.5fc9a6353dee29fbd4f997e6e3ebbb92.png

 

ثانيا / الصف الكودي التالي في اي مكان داخل المحرر

Public Function importExcel(Tablename As String, FilePath As String)

Dim xlApp                   As Excel.Application
Dim xlWb                    As Excel.Workbook
Dim xlWs                    As Excel.Worksheet
Dim intLine                 As Long
Dim strSqlDml               As String
Dim strColumn1 As String, strColumn2 As String, strColumn3 As String

    varfile = FilePath

Set xlApp = New Excel.Application
    xlApp.Visible = False

Set xlWb = xlApp.Workbooks.Open(varfile)
Set xlWs = xlWb.Worksheets(1)
    intLine = 2            'سيتم استيراد الصفوف بدء من الصف رقم 2

Do
    strColumn1 = Trim(xlWs.Cells(intLine, 1).Value) 'رقم 1 يعني العمود رقم 1 في ملف الاكسل
    strColumn2 = Trim(xlWs.Cells(intLine, 2).Value) 'رقم 2 يعني العمود رقم 2 في ملف الاكسل
    strColumn3 = Trim(xlWs.Cells(intLine, 3).Value) 'رقم 3 يعني العمود رقم 3 في ملف الاكسل
    
    strSqlDml = "INSERT INTO [" & Tablename & "] VALUES('" & strColumn1 & "', '" & strColumn2 & "', '" & strColumn3 & "')"
    CurrentDb.Execute strSqlDml, dbFailOnError
    xlWs.Cells(intLine, 1).Select
    intLine = intLine + 1
Loop Until IsEmpty(xlWs.Cells(intLine, 1))

    xlWb.Close False
    xlApp.Quit

Set xlApp = Nothing
Set xlWb = Nothing
Set xlWs = Nothing
End Function

و في ازرار استيراد البيانات الصق الكود التالي

Dim Addfile As Object: Set Addfile = Application.FileDialog(3)
With Addfile: .Filters.Add "All Files", "*.xlsx"
    If .Show = True Then
        ' Call importExcel("Table Name", "File Path")
        Call importExcel("tb1", Trim(.SelectedItems(1)))
	End if
End With

 

 

  • Like 3
رابط هذا التعليق
شارك

يا اللله بارك الله فيك : سواء استطعت التطبيق ام لا المهم اشكرك جزيل الشكر على سرعة الرد و ان شاء الله في ميزان حسناتك .

سانكب على تطبيق الاكواد و اوافيك بالنتيجة يا غالي 

رابط هذا التعليق
شارك

استاذي الكريم طبقت الكود مثلما ذكر لكن اولا 

1/ المكتبة التي ذكرتها لم اجدها و انما وجدت المكتبة التالية المبينة بالصورة 

55.PNG.dacde267970f7fc7b8a800cb60820c10.PNG

2/ عندما اردت استيراد الحقول ظهر هذا الخطا 

555.PNG.df750643cbba7cb94ece9f26559c45db.PNG

 

مع العلم انني مثبت الاكساس 2010 على حاسوبي بنظام 32 بايت 

و اشتغل على اكسيس 2007 

شكرا 

تم تعديل بواسطه derbali ammar
اضافة
رابط هذا التعليق
شارك

6 دقائق مضت, derbali ammar said:

1/ المكتبة التي ذكرتها لم اجدها و انما وجدت المكتبة التالية المبينة بالصورة 

 

ممتاز ثبتها و جرب الكود

 

6 دقائق مضت, derbali ammar said:

2/ عندما اردت استيراد الحقول ظهر هذا الخطا 

 

استبدل الكود بالتالي

Public Function importExcel(Tablename As String, FilePath As String)

Dim xlApp                   As Excel.Application
Dim xlWb                    As Excel.Workbook
Dim xlWs                    As Excel.Worksheet
Dim intLine                 As Long
Dim strSqlDml               As String
Dim strColumn1 As String, strColumn2 As String, strColumn3 As String

Set xlApp = New Excel.Application
    xlApp.Visible = False

Set xlWb = xlApp.Workbooks.Open(FilePath)
Set xlWs = xlWb.Worksheets(1)
    intLine = 2            'سيتم استيراد الصفوف بدء من الصف رقم 2

Do
    strColumn1 = Trim(xlWs.Cells(intLine, 1).Value) 'رقم 1 يعني العمود رقم 1 في ملف الاكسل
    strColumn2 = Trim(xlWs.Cells(intLine, 2).Value) 'رقم 2 يعني العمود رقم 2 في ملف الاكسل
    strColumn3 = Trim(xlWs.Cells(intLine, 3).Value) 'رقم 3 يعني العمود رقم 3 في ملف الاكسل
    
    strSqlDml = "INSERT INTO [" & Tablename & "] VALUES('" & strColumn1 & "', '" & strColumn2 & "', '" & strColumn3 & "')"
    CurrentDb.Execute strSqlDml, dbFailOnError
    xlWs.Cells(intLine, 1).Select
    intLine = intLine + 1
Loop Until IsEmpty(xlWs.Cells(intLine, 1))

    xlWb.Close False
    xlApp.Quit

Set xlApp = Nothing
Set xlWb = Nothing
Set xlWs = Nothing
End Function

 

  • Like 3
رابط هذا التعليق
شارك

استاذي الكريم : نجحت العملية و استطعت الدخول للاستيراد لكن تخرج رسالة مثل ما هو مبين بالصورة 

 

7878.PNG.d918254db306e94f4f37ff95d25f2580.PNG

 

مع العلم ان الجدول الذي اردت تصديره يوجد به 4 حقول فقط و هم

1/ الاسم و اللقب 

2/ تاريخ الولادة 

3/ الجنس 

4/ اسم الاب 

في حين الجدول الموجود بالاكساس يوجد به العديد من الحقول 

هل ان المشكلة تتمثل في ضرورة وجود نفس الحقول في الاكسيس و الاكسال ام هناك مشكلة اخرى 

 

4545.PNG.c7895a6c6f7948171ae13314a11ab995.PNG

 

تم تعديل بواسطه derbali ammar
رابط هذا التعليق
شارك

مشاركة معي استاذنا @د.كاف يار جزاه الله خيرا

استخدم هذا الكود فقط بدون مكتبات


TablName= MyAccessTbleName  'ضع بدل هذا المتغير اسم الجدول الموجود بالأكسس
ExlFilPath= MyExelFileFullName  'ضع بدل هذا المتغير مسار ملف الاكسل بالكامل مثل: D:\Exel1.xlsx
"A1:F2000"  ' هذا المدي الموجود به البيانات بشيت الاكسل غيره حسب ما هو موجود عندك
Docmd.TransferSpreadsheet(acImport,acSpreadsheetTypeExcel12,TablName,ExlFilPath,true,"A1:F2000")

هذا والله أعلم

  • Like 1
رابط هذا التعليق
شارك

تفضل هذا التعديل لتجاوز الخطأ

Public Function importExcel(Tablename As String, FilePath As String)
On Error Resume Next
Dim xlApp                   As Excel.Application
Dim xlWb                    As Excel.Workbook
Dim xlWs                    As Excel.Worksheet
Dim intLine                 As Long
Dim strSqlDml               As String
Dim strColumn1 As String, strColumn2 As String, strColumn3 As String

Set xlApp = New Excel.Application
    xlApp.Visible = False

Set xlWb = xlApp.Workbooks.Open(FilePath)
Set xlWs = xlWb.Worksheets(1)
    intLine = 2            'سيتم استيراد الصفوف بدء من الصف رقم 2

Do
    strColumn1 = Trim(xlWs.Cells(intLine, 1).Value) 'رقم 1 يعني العمود رقم 1 في ملف الاكسل
    strColumn2 = Trim(xlWs.Cells(intLine, 2).Value) 'رقم 2 يعني العمود رقم 2 في ملف الاكسل
    strColumn3 = Trim(xlWs.Cells(intLine, 3).Value) 'رقم 3 يعني العمود رقم 3 في ملف الاكسل
    
    strSqlDml = "INSERT INTO [" & Tablename & "] VALUES('" & strColumn1 & "', '" & strColumn2 & "', '" & strColumn3 & "')"
    CurrentDb.Execute strSqlDml, dbFailOnError
    xlWs.Cells(intLine, 1).Select
    intLine = intLine + 1
Loop Until IsEmpty(xlWs.Cells(intLine, 1))

    xlWb.Close False
    xlApp.Quit

Set xlApp = Nothing
Set xlWb = Nothing
Set xlWs = Nothing
End Function
 

 

  • Like 2
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information