الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة عند تصدير التقرير للأكسيل يظهر التاريخ الهجري بالميلادي

بدأه فتى الوادي في 19 مارس 2014 · 12 رد · 610 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

 

لدي قاعدة بيانات على الأكسيس 2003 واريد تصدير تقرير r_20 لملف أكسيل واستخدم الكود التالي :

 

DoCmd.OutputTo acReport, "r_20", "MicrosoftExcelBiff8(*.xls)", "C:\123.xls", True, "", 0

الإشكالية أنه يتم التصدير لكن يتحول التاريخ إلى الميلادي !! فما هو الحل وفقك ربي .؟!

 

 

post-3573-0-35023200-1395249291.jpg

 

انظر المثال المرفق :

 

DB16.rar

mk17481_26bccea871.gif
#2

وعليكم السلام ورحمة الله وبركاته :)

 

يا سيدي ، بعدما فشلت جميع محاولاتي ، اضطررت للكود :)

 

هذا الكود يحول لك بيانات الاستعلام (عملت لك الاستعلام وهو عبارة عن حقول الجدول ، ولكن لانه استعلام ، فانك تستطيع عمل التغييرات عليه بسهوله) :

Private Sub ÃãÑ0_Click()
On Error GoTo Err_ÃãÑ0_Click


'DoCmd.OutputTo acReport, "r_20", "MicrosoftExcelBiff8(*.xls)", "C:\123.xls", True, "", 0

    Dim rst As DAO.Recordset
    
    Output_File = "C:\123.csv"
    Open Output_File For Output As #1
    Print #1, "id" & "," & "ÑÞã ÇáÕÇÏÑ" & "," & "ÊÇÑíÎ ÇáÕÇÏÑ" & "," & "äæÚ ÇáãåãÉ"
    
    Set rst = CurrentDb.OpenRecordset("Select * From qry_t_1")
    rst.MoveLast: rst.MoveFirst
    
    For i = 1 To rst.RecordCount
    
        Date_as_Text = Format(rst!txtdate, "yyyy-m-dd")
        Print #1, rst!id & "," & rst!txtnum & "," & Date_as_Text & "," & rst!txtkin
    
        rst.MoveNext
    Next i
    
    rst.Close: Set rst = Nothing
    Close #1
    
    Application.FollowHyperlink Output_File

Exit_ÃãÑ0_Click:
    Exit Sub

Err_ÃãÑ0_Click:
    MsgBox Err.Description
    Resume Exit_ÃãÑ0_Click
    
End Sub

انا هنا احفظ البيانات بصيغة csv والتي يفتحها الاكسل ، ونتائجها:

post-273849-0-87205700-1395260585.jpg

 

واعتقد باننا نستطيع ان نعمل نفس الطريقة بصيغة xsl ، بس طبعا بتغييرات خاصة للاكسل.

 

سر النجاح هنا هو ، تحويل التاريخ الى نص في الاكسس ، قبل ارسال المعلومة الى الاكسل ،

وفي الاوامر الجاهزة لارسال الجداول من اكسس الى اكسل(كالامر الذي قمت انت بتجربته) ، فلم اتمكن من عمل هذا التغيير ، ففشلت جميع المحاولات :(

وهناك فكرة اخرى ، وهي عمل جدول مؤقت ، تكون التواريخ فيه بصيه بصية نص ، وعليه فان ارسال هذا الجدول للاكسل سيحتفظ بالتواريخ كما نريدها :)

 

 

جعفر

177.DB16.mdb.zip

تم تعديل هذه المشاركة بواسطة jjafferr في 19 مارس 2014 في 23:33

#3

ماشاء الله عليك ... من له حيلة فليحتل .

سأجرب .. 

ومقدما بارك الله فيك وفي علمك ونفع الله بك .

ولا أملك لك إلا الدعاء في ظهر الغيب .

mk17481_26bccea871.gif
#4

طلع لي البيانات في خلية واحدة بهذا الشكل :

 

post-3573-0-47850000-1395262138.jpg

 

 

لابد من تصدير التقرير وليس الأستعلام .

 

لأن في التقرير حسابات ومعادلات في بعض الحقول .

تم تعديل هذه المشاركة بواسطة فتى الوادي في 20 مارس 2014 في 00:02

mk17481_26bccea871.gif
#5

الحمد لله تم التوصل لحل عن طريق تنسيق عمود التاريخ من داخل الأكسيل وذلك بتحويل صيغة التاريخ إلأى ( مخصص ) ثم اختيار b2dd/mm/yyyy

mk17481_26bccea871.gif
#6
فتى الوادي كتب:

طلع لي البيانات في خلية واحدة بهذا الشكل :

 

في الكود ، غير الفواصل ، هكذا:

من
        Print #1, rst!id & "," & rst!txtnum & "," & Date_as_Text & "," & rst!txtkin

الى        
        Print #1, rst!id & ";" & rst!txtnum & ";" & Date_as_Text & ";" & rst!txtkin

وفيه سطرين فقط في الكود اللي يجب تغيير الفواصل فيها.

 

 

ما شاء الله عليك ، بسم الله تبارك الرحمن ، الحمدلله على انك قدرت الوصول للحل :)

 

بس لوسمحت تعمل الاتي ، وتشوف هل النتائج تطلع صحيحة:

1.

في الاكسس ، في آخر سجل ، غير التاريخ من:

1435-03-25

الى

1434-03-25

 

2.

ارسل البيانات الى الاكسل

 

3.

قم بعمل تنسيق التاريخ في الاكسل مثل ما تفضلت به في مشاركتك

 

فهل التاريخ الاخير يظل صحيحا؟؟

بالنسبة لتجاربي السابقة ، نجحت القضية في تواريخ هذه السنة ، ولكني لما غيرت تاريخ سنة واحدة من الاكسس (مثل ما طلبت منك تجربته) ، لم احصل على النتيجة الصحيحة لهذه السنة :(

فبدلا عن 1434-03-25

حصلت على 1434-03-24

لهذا السبب التجأت للكود :)

 

جعفر

تم تعديل هذه المشاركة بواسطة jjafferr في 20 مارس 2014 في 00:49

#7

رجاء ملاحظة التعديل الاخير اللي عملته واللي عملته باللون الاحمر :)

 

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

 

جعفر

#8

السلام عليكم :

 

التاريخ 25-3-1435 يطلع مضبوط

 

الطريقة :

 

post-3573-0-42194900-1395309792_thumb.jp

 

post-3573-0-56928300-1395309858.jpg

 

post-3573-0-03332600-1395309920.jpg

mk17481_26bccea871.gif
#9

السنه 1434 وليس 1435 لوسمحت :)

#10

تفضل 

 

 

post-3573-0-57443300-1395316478.jpg

mk17481_26bccea871.gif
#11

انا مﻻحظ أن تاريخ اليوم اﻻخير غير عن اﻻيام أﻻخرى ، فهل هذا صحيح ، أو أن اﻻكسل نقص يوم؟

شكرا

#12

يا شيخ جعفر ... أيش السالفة !!!

 

أنا ادخلت تاريح 25 / 3 / 1434 وتاريخ 24 / 3 / 1434 في الأكسيس .. ثم صدرتها للأكسيل  وتم تحويلها للتاريخ الميلادي ثم سويت عليه تنسيق الخلايا ورجعت التواريخ كما هي لا زيادة ولا نقصان .

 

 

هل طلع لديك فيه زيادة أو نقص ؟!

mk17481_26bccea871.gif
#13

جزاك الله خير :)

ما كنت متأكد من أن جميع التواريخ صحيحة :(

واﻻن ارتاح بالي :)

جعفر

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…