تاريخ الوصول المسألة - dd/mm تلقائيا تغير إلى mm/dd

StackOverflow https://stackoverflow.com/questions/186655

  •  06-07-2019
  •  | 
  •  

سؤال

لقد مشفرة شيء باستخدام تاريخ البيان في Access VBA.كان يعمل بشكل جيد حتى بداية هذا الشهر, ولكن الآن أرى أن التاريخ قد تتغير تلقائيا شكل من dd/mm/yyyy إلى mm/dd/yyyy.أحد واجه نفس المشكلة ؟

هل كانت مفيدة؟

المحلول

الوصول الافتراضية SQL تنسيق التاريخ ، بغض النظر عن اللغة ، mm/dd/yyyy.إذا كنت تستخدم تنسيق تاريخ غير صالح ، وسوف 'مفيد' محاولة تحويل ذلك إلى تاريخ صحيح بالنسبة لك.

لذا ، إذا كنت تستخدم '30/09/2008', وسوف تتعرف كنت تستخدم dd/mm/yyyy ، وتحويله بشكل مناسب.ومع ذلك ، فإن قيمة مثل '10/01/2008' صالح mm/dd/yyyy قيمة لتبدأ, لذلك سوف لا يكون تحويلها و تخزينها بشكل غير صحيح في حال كنت في الواقع يعني dd/mm/yyyy....

الحل هو دائما تحويل قيم التاريخ إلى mm/dd/yyyy السلسلة قبل استخدامها في الوصول إلى البيانات SQL.عليك أن تكون حذرا بعض الشيء هنا ، باستخدام VBA تنسيق التاريخ الأقنعة قد لا تعمل تماما كما كنت تتوقع في غير الولايات المتحدة لغات (مثلا ، 'مفيد' تفسير "mm/dd/yyyy" كما "مترجمة تنسيق التاريخ القصير") ، لذا يرجى اختبار بعناية باستخدام جهاز معين وصول/VBA الإصدار.

نصائح أخرى

والوصول يتطلب موعد لا لبس فيها. ويوصى عموما التي تستخدمها س س س س / شهر / يوم، بغض النظر عن اللغة. على سبيل المثال:

strSQL="SELECT SomeDate FROM tblT WHERE SomeDate=#" & Format(DateVar, "yyyy/mm/dd") & "#"

وحاول هذا الرمز:

stLinkCriteria = "[ProjectDate] Between #" & Format(CDate(Me![txtDateFrom]), "mm/dd/yyyy") & "# And #" & Format(CDate(Me![txtDateTo]), "mm/dd/yyyy") & "#"

وكان يعمل بالنسبة لي.

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

و"Select * from DateTable where StartDate = datevalue(" & me!TxtStartDate & ");"

ويبدو أن العمل في كل مرة.

وهذا يعمل:

sentenciaSQL = "UPDATE Numeraciones " & _
"SET Valor = " & Valor & ", " & _
"Fecha = #" & **Format(fecha,"mm/dd/yyyy HH:nn:ss") & "#, " &** _
"Id_Usuario = " & Id_Usuario & _
" WHERE Nombre = '" & Nombre & "'"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top