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

خطأ في كود الاستيراد


عفرنس
إذهب إلى أفضل إجابة Solved by أبو إبراهيم الغامدي,

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

أحاول استيرد الملف فيعطيني الخطأ التالي ..

شاكرين ومقدرين تعاونكم 

@jjafferr @أحمد الفلاحجى@Barna

153486892_222(2).png.ac59c1950caed55f74b9df2daac48cb8.png

 

Posters.zip

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

لا تستخدم الكلمات المحجوزة في اكسس في تسمية الجداول او النماذج أووووووووووووووووووووووووووووووووو

من الكلمات المحجوزة:

ADD - ALL - AND - BETWEEN - Count - CurrentUser - DATABASE - DATE - FROM - GROUP - INDEX - Level - Macro - Module - NAME - NUMBER - PRIMARY - Query - Refresh - Report - TABLE - Time - USER - Year - YES - YESNO

بارك الله فيك ....

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

15 دقائق مضت, Barna said:

لا تستخدم الكلمات المحجوزة في اكسس في تسمية الجداول او النماذج أووووووووووووووووووووووووووووووووو

من الكلمات المحجوزة:

ADD - ALL - AND - BETWEEN - Count - CurrentUser - DATABASE - DATE - FROM - GROUP - INDEX - Level - Macro - Module - NAME - NUMBER - PRIMARY - Query - Refresh - Report - TABLE - Time - USER - Year - YES - YESNO

بارك الله فيك ....

جزاك الله خيرا ..

ماذا عن بقية الكود حبذا لو اطلعت على الملف المرفق ..

image.png.2a43bafd05e427cb5b473c21f74f9d4f.png

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

احنا ما تفقنا يا استاذ فايز ان الصورة فيها الجزء المفيد فقط ، حتى نقدر نشوف الخطأ وين 🙂

 

لا يمكن استيراد البيانات بالطريقة السابقة ، لهذا السبب وجب علينا ان نمشي بها سطر بسطر :

    Dim ImportFileName As String
    Dim rst1, rst2 As DAO.Recordset
    Dim i As Long
    
    ImportFileName = Me.txtPath
    CurrentDb.Execute ("Delete * From Table1")
    CurrentDb.Execute ("Delete * From Temp4")

    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Temp4", ImportFileName, False
    
    Set rst1 = CurrentDb.OpenRecordset("Select F2 From Temp4 Where F2 Is Not Null")
    Set rst2 = CurrentDb.OpenRecordset("Select * From Table1")
    
    rst2.AddNew
    Do Until rst1.EOF
    
        i = i + 1
            
                       
            If i = 1 Then
                rst2![Academic Year] = rst1!F2
        
            ElseIf i = 2 Then
                rst2![Academic Num] = Mid(rst1!F2, InStrRev(rst1!F2, " ") + 1)
                
            ElseIf i = 3 Then
                rst2![StName] = rst1!F2
                
            ElseIf i = 4 Then
                rst2![F1] = rst1!F2
                
            ElseIf i = 5 Then
                rst2![Subjects] = rst1!F2
                
            End If
            
    
        rst1.MoveNext
    Loop
    rst2.Update
    
    rst1.Close: Set rst1 = Nothing
    rst2.Close: Set rst2 = Nothing
    
    MsgBox "تم استيراد البيانات بنجاح"

'F2
'1=1438-1439
'2=الرقم الأكاديمي 38002
'3=يوسف بن رضا بن حسن مصباح
'4=المواد المسجلة في الفصل الدراسي الثاني 1440-1441
'5=رياضيات 4 الشعبة 5 - تربية صحية وبدنية الشعبة 5 - اللغة العربية 4 الشعبة 5 - إنجليزي 4 الشعبة 5 - أحياء 2 الشعبة 5

 

جعفر

Posters.zip

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

2 دقائق مضت, ابو البشر said:

اعتقد قراءة لفكر فايز ( اريدها لأكثر من سجل ) ........ :yes: صح يا استاذ / فايز 

صحيح 600 طالب تقريبا 

51 دقائق مضت, jjafferr said:

احنا ما تفقنا يا استاذ فايز ان الصورة فيها الجزء المفيد فقط ، حتى نقدر نشوف الخطأ وين 🙂

 

لا يمكن استيراد البيانات بالطريقة السابقة ، لهذا السبب وجب علينا ان نمشي بها سطر بسطر :


    Dim ImportFileName As String
    Dim rst1, rst2 As DAO.Recordset
    Dim i As Long
    
    ImportFileName = Me.txtPath
    CurrentDb.Execute ("Delete * From Table1")
    CurrentDb.Execute ("Delete * From Temp4")

    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Temp4", ImportFileName, False
    
    Set rst1 = CurrentDb.OpenRecordset("Select F2 From Temp4 Where F2 Is Not Null")
    Set rst2 = CurrentDb.OpenRecordset("Select * From Table1")
    
    rst2.AddNew
    Do Until rst1.EOF
    
        i = i + 1
            
                       
            If i = 1 Then
                rst2![Academic Year] = rst1!F2
        
            ElseIf i = 2 Then
                rst2![Academic Num] = Mid(rst1!F2, InStrRev(rst1!F2, " ") + 1)
                
            ElseIf i = 3 Then
                rst2![StName] = rst1!F2
                
            ElseIf i = 4 Then
                rst2![F1] = rst1!F2
                
            ElseIf i = 5 Then
                rst2![Subjects] = rst1!F2
                
            End If
            
    
        rst1.MoveNext
    Loop
    rst2.Update
    
    rst1.Close: Set rst1 = Nothing
    rst2.Close: Set rst2 = Nothing
    
    MsgBox "تم استيراد البيانات بنجاح"

'F2
'1=1438-1439
'2=الرقم الأكاديمي 38002
'3=يوسف بن رضا بن حسن مصباح
'4=المواد المسجلة في الفصل الدراسي الثاني 1440-1441
'5=رياضيات 4 الشعبة 5 - تربية صحية وبدنية الشعبة 5 - اللغة العربية 4 الشعبة 5 - إنجليزي 4 الشعبة 5 - أحياء 2 الشعبة 5

 

جعفر

Posters.zip 26.15 kB · 1 تنزيلات

سامحني أستاذي الفاضل 

ماذا لو كان عندي عدد 600 فأكثر ؟؟ هل ستظهر اسماؤهم في الكود  كما صاحبنا يوسف ؟؟ 

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

10 دقائق مضت, ابو البشر said:

توقعاتي صحيحة ..... ههههههه .... لانه لا يعقل ان نعمل كود لطالب واحد .....

عندي طريقة لربما تعتبر طريق فرعي وترابي ايضا مقارنة بطريقة أخي @jjafferr سوف ارفقها ..... بشرط أن يضع لنا الاستاذ جعفر طريق سريع ومسفلت ... :wavetowel:

Sub RecordPorssesing()
On Error Resume Next
Dim rs, rs2, rsq As Recordset, Dbs As Database
Dim StrSql As String
Dim x, r, I, p, z As Integer
Set Dbs = CurrentDb
Set rsq = Dbs.OpenRecordset("Temp4")
Set rs = Dbs.OpenRecordset("SELECT Temp4.F2 FROM Temp4 WHERE (((Temp4.F2) Is Not Null));")
    rsq.MoveLast
    rsq.MoveFirst
For z = 1 To rs.RecordCount Step 5
For I = 1 To rsq.RecordCount Step 5
    Set rs2 = Dbs.OpenRecordset("tbl_bar")
    rs2.AddNew
    rs2.Fields(0) = rsq.Fields(0)
    r = 0
For p = 1 To 5
    rs2.Fields(r) = rs.Fields(0)
    r = r + 1
    rs.MoveNext
Next p
rs2.Update
rsq.MoveNext
Next I
Next z
 Set rs = Nothing
Set rs2 = Nothing
Set rsq = Nothing
DoCmd.OpenTable "tbl_bar"
End Sub

Posters.accdb

تم تعديل بواسطه Barna
  • Like 3
رابط هذا التعليق
شارك

1 دقيقه مضت, Barna said:

عندي طريقة لربما تعتبر طريق فرعي وترابي ايضا مقارنة بطريقة أخي @jjafferr سوف ارفقها ..... بشرط أن يضع لنا الاستاذ جعفر طريق سريع ومسفلت ... :wavetowel:

 

Posters.accdb 448 kB · 0 تنزيلات

سيضعه بإذن الله .. وبشرط أيضا بدون كيمرات رصد تجاوز السرعة القانونية 

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

شو السالفة !!

اشوف متفقين عليّ 😁

لا تكونوا متراهنين ، وتنتظرون تشوفون من بيفوز !!

 

انا آسف ، ما ممكن اتابع ، إلا بأن اشوف ملف التلاميذ كلهم ، وإلا فمافيه فائدة 🙂

 

جعفر

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

2 دقائق مضت, jjafferr said:

شو السالفة !!

اشوف متفقين عليّ 😁

لا تكونوا متراهنين ، وتنتظرون تشوفون من بيفوز !!

 

انا آسف ، ما ممكن اتابع ، إلا بأن اشوف ملف التلاميذ كلهم ، وإلا فمافيه فائدة 🙂

 

جعفر

هل أرفق ملف بقية التلاميذ .. تقصد ؟؟ 

لأن كل سنة دراسية في ملف مستقل 

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

في ٩‏/٤‏/٢٠٢٠ at 23:41, jjafferr said:

انا ما اعرف الطريقة اللي تجيك الملفات ، فأنا اريد اعرف كيف تجيك ، علشان اعطيك الحل الامثل 🙂

 

جعفر

ابشر 🍓🍓

في ٩‏/٤‏/٢٠٢٠ at 23:41, jjafferr said:

انا ما اعرف الطريقة اللي تجيك الملفات ، فأنا اريد اعرف كيف تجيك ، علشان اعطيك الحل الامثل 🙂

 

جعفر

تفضل أخي الفاضل @jjafferr

هي بهذا الحال .. 

أشكر لك رحابة صدرك ..

 

CS_SeetNumberLabels (2).xlsx

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

8 دقائق مضت, Barna said:

بصراحة ... هذه عملية استفزاز لك ... حتى تخرج لنا بعض الكنوز التي لديك لنستفيد منها .... بارك الله فيك اخي @jjafferr

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

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

1 ساعه مضت, Barna said:

عندي طريقة لربما تعتبر طريق فرعي وترابي ايضا مقارنة بطريقة أخي @jjafferr سوف ارفقها ..... بشرط أن يضع لنا الاستاذ جعفر طريق سريع ومسفلت ... :wavetowel:


Sub RecordPorssesing()
On Error Resume Next
Dim rs, rs2, rsq As Recordset, Dbs As Database
Dim StrSql As String
Dim x, r, I, p, z As Integer
Set Dbs = CurrentDb
Set rsq = Dbs.OpenRecordset("Temp4")
Set rs = Dbs.OpenRecordset("SELECT Temp4.F2 FROM Temp4 WHERE (((Temp4.F2) Is Not Null));")
    rsq.MoveLast
    rsq.MoveFirst
For z = 1 To rs.RecordCount Step 5
For I = 1 To rsq.RecordCount Step 5
    Set rs2 = Dbs.OpenRecordset("tbl_bar")
    rs2.AddNew
    rs2.Fields(0) = rsq.Fields(0)
    r = 0
For p = 1 To 5
    rs2.Fields(r) = rs.Fields(0)
    r = r + 1
    rs.MoveNext
Next p
rs2.Update
rsq.MoveNext
Next I
Next z
 Set rs = Nothing
Set rs2 = Nothing
Set rsq = Nothing
DoCmd.OpenTable "tbl_bar"
End Sub

Posters.accdb 448 kB · 2 تنزيلات

أخي @Barna

حتى تكون الصورة واضحة لديك ..

عندي ثلاثة صفوف دراسية اول ثاني ثالث ثانوي

وكل صف في ملف اكسل 

في حال تم تصدير الملف الأول سيكون بهذا العنوان ( CS_SeetNumberLabels ) والثاني  (1) CS_SeetNumberLabels  الثالث هكذا (2) CS_SeetNumberLabels 

الآن أريد أستورد الثلاثة ملفات بطريقتين ( فردي ) أي كل ملف لوحده ( أو كلي ) أي الجميع . 

دمتم بود . 

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

واضحة الفكرة ... لكن سؤال واحد لقف .... ليس تسحب هذه البيانات ما الفائدة المرجوة منها ؟؟؟؟ ليش اسأل ... لربما هناك طريقة افضل واستخدامات اكثر .... مثلا لماذا لا تستخدم بيانات جداول الطلاب لهذه المهمة .... فهي تساعدك فيما بعد في جداول الاختبارات واللجان وووو اشياء اخرى

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

6 دقائق مضت, Barna said:

واضحة الفكرة ... لكن سؤال واحد لقف .... ليس تسحب هذه البيانات ما الفائدة المرجوة منها ؟؟؟؟ ليش اسأل ... لربما هناك طريقة افضل واستخدامات اكثر .... مثلا لماذا لا تستخدم بيانات جداول الطلاب لهذه المهمة .... فهي تساعدك فيما بعد في جداول الاختبارات واللجان وووو اشياء اخرى

الجواب أخي @Barna أحتاج هذا الملف بالذات لأغراض أخرى غير موجودة في الجدول .. 

طبعا تراني ما زلت أنتظر البخور @jjafferr

تم تعديل بواسطه فايز..
رابط هذا التعليق
شارك

11 ساعات مضت, فايز.. said:

طبعا تراني ما زلت أنتظر البخور @

السلام عليكم 🙂

 

اذا كتبت رد ، وبعدها وخلال 5 دقائق كتبت رد آخر ، فالمنتدى يقوم بدمج المشاركة الجديدة في المشاركة السابقة ،

هذا زين ، ولكن المشكلة تكمن في اننا لا نحصل على اشعار بأنه هناك مشاركة جديدة ، وهذا اللي صار مع مشاركتك ، الآن فقط شفتها !!

 

ونفس الشيء ، اذا كتبت رد ، وبعدين قمت بالتعديل عليه (قبل ان يكون هناك مشاركة اخرى) ، فكذلك ما نحصل على اشعار !!

 

جعفر

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

12 ساعات مضت, فايز.. said:

في حال تم تصدير الملف الأول سيكون بهذا العنوان ( CS_SeetNumberLabels ) والثاني  (1) CS_SeetNumberLabels  الثالث هكذا (2) CS_SeetNumberLabels

سؤال:

هل انت الذي يتحكم في شكل ومكونات ملف الاكسل اللي تنزله ، او الموقع يُنزله بهذه الطريقة ؟
 

جعفر

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

31 دقائق مضت, jjafferr said:

سؤال:

هل انت الذي يتحكم في شكل ومكونات ملف الاكسل اللي تنزله ، او الموقع يُنزله بهذه الطريقة ؟
 

جعفر

@jjafferr

الموقع ينزله بهذه الطريقة 

ليس لي أي تدخل .. 

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

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