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

كود استيراد ملف اكسل من نوع CSV


عفرنس
إذهب إلى أفضل إجابة Solved by jjafferr,

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

اريد استيراد ملف اكسل من نوع CSV 

العمود الأول يتضمن 10 أرقام ( رقم الهوية )  ، والعمود الثالث يتضمن 9 أرقام ( رقم الموبايل ) 

العمود الثاني والرابع والخامس نص .. 

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

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

 

بيانات اعمدة/حقول ملف csv ، بينها فاصلة او فاصلة منقوطة .

اما الملف نفسه ، فبالاضافة ان انه يمكن فتحه بالاكسل ، فيمكن فتحه ببرنامج Notepad ، لأنه اصلا ملف txt .

 

ممكن تقرا الملف هكذا :

Dim TextLine
  dim x() as string
  
Open "TESTFILE" For Input As #1    ' Open file.
Do While Not EOF(1)    ' Loop until end of file.
    Line Input #1, TextLine    ' Read line into variable.
    Debug.Print TextLine    ' Print to the Immediate window.
  
  x=split(TextLine,",")  ' اما اذا كانت الفارزة في الملف فاصلوة منقوطة ، فاستعملها بدل الفاصلة

   الحقل 1 = x(0)
    الحقل 2 = x(1)
    الحقل 3 = x(2)
    الحقل 4 = x(3) 
    الحقل 5 = x(4) 
    الحقل 6 = x(5) 
  
  Loop
Close #1    ' Close file.
 

 

جعفر

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

9 ساعات مضت, jjafferr said:

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

 

بيانات اعمدة/حقول ملف csv ، بينها فاصلة او فاصلة منقوطة .

اما الملف نفسه ، فبالاضافة ان انه يمكن فتحه بالاكسل ، فيمكن فتحه ببرنامج Notepad ، لأنه اصلا ملف txt .

 

ممكن تقرا الملف هكذا :


Dim TextLine
  dim x() as string
  
Open "TESTFILE" For Input As #1    ' Open file.
Do While Not EOF(1)    ' Loop until end of file.
    Line Input #1, TextLine    ' Read line into variable.
    Debug.Print TextLine    ' Print to the Immediate window.
  
  x=split(TextLine,",")  ' اما اذا كانت الفارزة في الملف فاصلوة منقوطة ، فاستعملها بدل الفاصلة

    الحقل 1 = x(0)
    الحقل 2 = x(1)
    الحقل 3 = x(2)
    الحقل 4 = x(3) 
    الحقل 5 = x(4) 
    الحقل 6 = x(5)
  
  Loop
Close #1    ' Close file.
 

 

جعفر

@jjafferr هل تقصد أضع هذا الكود في زر أمر ؟ 

أريد استيراد بيانات الملف إلى جدول في قاعدة البيانات .. 

 

 

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

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

1. هل تقصد أضع هذا الكود في زر أمر ؟ 

2. أريد استيراد بيانات الملف إلى جدول في قاعدة البيانات .. 

1. نعم ، وبجعل المتغير TESTFILE يشير الى مكان وجود الملف ، هكذا :

dim TESTFILE as string
  
TESTFILE = "c:\temp\abc.csv"  
Open TESTFILE For Input As #1    ' Open file.

 

2. هنا يجب ان تستدعي الجدول عن طريقة Recordset ، او ان تعمل استعلام الحاقي ، وتضيف بيانات الحقول.

 

جعفر

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

9 ساعات مضت, jjafferr said:

1. نعم ، وبجعل المتغير TESTFILE يشير الى مكان وجود الملف ، هكذا :


dim TESTFILE as string
  
TESTFILE = "c:\temp\abc.csv"  
Open TESTFILE For Input As #1    ' Open file.

 

2. هنا يجب ان تستدعي الجدول عن طريقة Recordset ، او ان تعمل استعلام الحاقي ، وتضيف بيانات الحقول.

 

جعفر

أخي @jjafferr 

من غير ما تعصب علي ... 

ضعت بين الكود الأول والثاني .. 

برنامج تصدير الطلاب الى السجل fffالإلكتروني.rar

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

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

همممم

كيف ، وكالعادة ، ما اعطيتني اي معلومات !!

اي نموذج ، اي جدول !!

 

جعفر

سامحني أخي الكريم @jjafferr سامحك الله 

نموذج ( استيراد جداول وبيانات الطلاب ) ثم تجد زر الأمر باسم / استيراد ملف templet > 

نريد استيراد بيانات هذا الملف في جدول mobaile >> 

هممممم .. ولا تشره علي تراني جوعان .. 

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

أهلا بكم..

تنسيق ملف CSV المرفق ليس وفق معايير التنسيق الصحيحة لهذا النوع من الملفات النصية، وبالتالي لا يمكن أن يعيد بيانات متناسقة

بيانات ملف CSV  لا يمكن أن تكون مفصولة بفاصلة منقوطة أبدا.. 

على أية حال؛ يمكنك أن تستعرض بيانات هذا النوع الملفات بالطريقة التالي:

في محرر الاستعلام أكتب النص التالي

SELECT * FROM [TEMPLATE#CSV] IN '.'[TEXT; HDR=YES;]

النقطة بين علامة الاقتباس تشير إلى الدليل الحالي لقاعدة البيانات وذلك بناء على الدليل الافتراضي في خيارات أكسس. إذا كنت تريد لأكسس أن يعين الدليل الحالي كدليل افتراضي؛ قم بتغيير الدليل الافتراضي إلى نقطة أيضا..

 DEF_DIR.PNG.909f680d9df07d99437c991fe64da2f9.PNG

هذا المثال للتوضيح

Access With CSV.zip

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

  • أفضل إجابة
57 دقائق مضت, فايز.. said:

هممممم .. ولا تشره علي تراني جوعان .. 

🙂

 

هذا الكود الكامل :

    Dim TextLine
    Dim x() As String
    Dim TESTFILE As String
    Dim rst As DAO.Recordset
    
    Set rst = CurrentDb.OpenRecordset("Select * From Mobaile")
  
    TESTFILE = Application.CurrentProject.Path & "\Template.csv"

    Open TESTFILE For Input As #1    ' Open file.
    Do While Not EOF(1)    ' Loop until end of file.
        Line Input #1, TextLine    ' Read line into variable.
        'Debug.Print TextLine    ' Print to the Immediate window.
  
        x = Split(TextLine, ";")
        
        If x(0) <> "IdentificationID" Then
        
            rst.AddNew
                rst!IdentificationID = x(0)
                rst!FullName = x(1)
                rst!MobileNumber = x(2)
                rst!ClassName = x(3)
            rst.Update

        End If
    
    Loop

    Close #1    ' Close file.
      rst.close: set rst = nothing

 

جعفر

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

أهلا بكم..

لإدراج بيانات من ملف CSV إلى جدول بنفس الحقول مع استبعاد التكرار استخدم الجملة التالية

INSERT INTO TEMPLATE
SELECT * FROM [TEMPLATE#CSV] IN '.'[TEXT; HDR=YES;]
WHERE NOT IdentificationID=ANY(SELECT IdentificationID FROM TEMPLATE);

 

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

3 ساعات مضت, jjafferr said:

🙂

 

هذا الكود الكامل :


    Dim TextLine
    Dim x() As String
    Dim TESTFILE As String
    Dim rst As DAO.Recordset
    
    Set rst = CurrentDb.OpenRecordset("Select * From Mobaile")
  
    TESTFILE = Application.CurrentProject.Path & "\Template.csv"

    Open TESTFILE For Input As #1    ' Open file.
    Do While Not EOF(1)    ' Loop until end of file.
        Line Input #1, TextLine    ' Read line into variable.
        'Debug.Print TextLine    ' Print to the Immediate window.
  
        x = Split(TextLine, ";")
        
        If x(0) <> "IdentificationID" Then
        
            rst.AddNew
                rst!IdentificationID = x(0)
                rst!FullName = x(1)
                rst!MobileNumber = x(2)
                rst!ClassName = x(3)
            rst.Update

        End If
    
    Loop

    Close #1    ' Close file.
      rst.close: set rst = nothing

 

جعفر

جزاك الله خيرا أخي الكريم  @jjafferr

وضعت الكود في زر الأمر .. .. وعند طلب الملف لم يظهر . 

image.png.c3a05abd1ce628411210ec2842fc3d68.png

3 ساعات مضت, أبو إبراهيم الغامدي said:

أهلا بكم..

لإدراج بيانات من ملف CSV إلى جدول بنفس الحقول مع استبعاد التكرار استخدم الجملة التالية


INSERT INTO TEMPLATE
SELECT * FROM [TEMPLATE#CSV] IN '.'[TEXT; HDR=YES;]
WHERE NOT IdentificationID=ANY(SELECT IdentificationID FROM TEMPLATE);

 

وفقك الله أخي @أبو إبراهيم الغامدي 

وأين أضع الكود من كود ألأستاذ @jjafferr في حال احتجت إليه ؟ 

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

51 دقائق مضت, فايز.. said:

وأين أضع الكود من كود ألأستاذ @jjafferr في حال احتجت إليه ؟

هذى جمل استلام توضع في محرر الاستلام وتحفظ كاستعلام ولا علاقة لها بشفرة الاستاذ جعفر..

كتبتها من أجل إعطائك فكرة عن كيفية الاتصال بمثل هذا النوع من البيانات..

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

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

وضعت الكود في زر الأمر .. .. وعند طلب الملف لم يظهر . 

تفضل 🙂 

ونماذج برنامجك فيها خطأ لما تفتحها في وضع التصميم ، فقمت بإستيراد كائنات برنامجك الى برنامج جديد ، وانتهت المشكلة ، فرجاء استعمل هذا الملف من الآن ،

والسؤال الآخر ، ليش لازلت تستعمل صيغة mdb ، انتقل الى accdb ، إلا اذا المستخدمين عنهم اكسس 2003 فما دون !!

 

جعفر

برنامج تصدير الطلاب للسجل الالكتروني حسب المادة معتمد.zip

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

2 ساعات مضت, jjafferr said:

تفضل 🙂 

ونماذج برنامجك فيها خطأ لما تفتحها في وضع التصميم ، فقمت بإستيراد كائنات برنامجك الى برنامج جديد ، وانتهت المشكلة ، فرجاء استعمل هذا الملف من الآن ،

والسؤال الآخر ، ليش لازلت تستعمل صيغة mdb ، انتقل الى accdb ، إلا اذا المستخدمين عنهم اكسس 2003 فما دون !!

 

جعفر

برنامج تصدير الطلاب للسجل الالكتروني حسب المادة معتمد.zip 544.95 kB · 0 تنزيلات

جزاك الله خيرا .. على نصحك .. @jjafferr 

نفس المشكلة :: عندما اضغط زر Browse  لا يظهر ملف templat :: ما ذا يجب علي فعله حتى يظهر ضمن الملفات 

image.png.21c98e0ed8de8fb160e37d870be16605.png

 

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

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

ثم تجد زر الأمر باسم / استيراد ملف templet

انت اخبرتني انك تريد الكود على هذا الزر ، فوضعته هناك 🙂 

وللعلم ، علشان الكود يشتغل ، يجب ان يكون الملف Template.csv في نفس مجلد البرنامج.

 

جعفر

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

منذ ساعه, jjafferr said:

انت اخبرتني انك تريد الكود على هذا الزر ، فوضعته هناك 🙂 

 

@jjafferr وضع الكود في الزر صحيح .. وهو المطلوب . 

 

منذ ساعه, jjafferr said:

وللعلم ، علشان الكود يشتغل ، يجب ان يكون الملف Template.csv في نفس مجلد البرنامج.

وضعت الملف في نفس مجلد البرنامج ومازالت المشكلة لا يظهر ( مختفي عني ) ما أحصله .. 

لا أدري أين هي المشكلة .. 

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

مسار الملف موجود في الكود :

TESTFILE = Application.CurrentProject.Path & "\Template.csv"

TESTFILE = 
  Application.CurrentProject.Path  معناه مسار البرنامج ، واذا كانت قاعدة بياناتك قسمين ، فهذا مسار برنامج الواجهة وليس الجداول
  & "\Template.csv"   اسم الملف

 

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

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

TESTFILE = Application.CurrentProject.Path معناه مسار البرنامج ، واذا كانت قاعدة بياناتك قسمين ، فهذا مسار برنامج الواجهة وليس الجداول & "\Template.csv" اسم الملف

لا ليست القاعدة قسمين .. هو نفس البرنامج اللي انت ارفقته لي وقلت استخدمه .. 

طيب :: وش الحل مع هذه المصيبة ؟؟ 

لأنك استوردت الملف ومشى معك تمام .. 

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

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

وضعت الملف في نفس مجلد البرنامج ومازالت المشكلة لا يظهر ( مختفي عني ) ما أحصله .. 

لا أدري أين هي المشكلة .. 

في زر أمر اختيار الملف غير الشفرة بهذه

    ' open the windows file dialog to select the file

    With Application.FileDialog(1)
        .Title = "Choose File"
        .Filters.Clear
        .Filters.Add "Excel Files", "*.xls ; *.xlsx"
        .Filters.Add "CSV Files", "*.csv"
        .Filters.Add "All File", "*.*"
        .AllowMultiSelect = False
        .InitialFileName = ""
        If .Show = -1 Then
            Me.txtPath = .SelectedItems(1)
        End If
    End With

 

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

30 دقائق مضت, kanory said:

تفضل بالتعديلات التي ذكرها الاساتذة الأفاضل .... ملفك بعد التعديل

 

1.png

برنامج_تصدير_الطلاب_للسجل_الالكتروني_حسب_المادة_معتمد.mdb 4.12 \u0645\u064a\u062c\u0627 \u0628\u0627\u064a\u062a · 2 تنزيلات

شكر الله لك أخي @kanory 

يبدو انك ارفقت ملف أخر .. لم أجد التعديلات .. 

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

وهذا الملف يعؤض لك كل ملفات الاكسل بدون اختيار التمبلت

 

برنامج_تصدير_الطلاب_للسجل_الالكتروني_حسب_المادة_معتمد.mdb

3 دقائق مضت, فايز.. said:

شكر الله لك أخي @kanory 

يبدو انك ارفقت ملف أخر .. لم أجد التعديلات .. 

اليس الحديث حول هذا الزر الخاص باستيراد ملف اكسل به ارقام هواتف

 

1.png

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

3 دقائق مضت, kanory said:

شكر الله لك .. عند اختيار الملف وعمل الاستيراد تظهر هذه الرسالة

image.png.cdf71b6ad24577a5088ea097fead5a31.png

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

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

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

Important Information