المعلمة المحددة للمستخدم المستخدمة كجزء من اسم الملف في الوصول
سؤال
لدي قاعدة بيانات Access 2007 التي تخرج تقريرًا بتنسيق Excel ، يعتمد التقرير على معلمة تاريخ يختارها المستخدم. يتم تحديد هذه المعلمة عبر مربع نص (Text100) يحتوي على تقويم منبثق. أرغب في استخدام التاريخ في مربع النص (Text100) كجزء من اسم الملف. أنا أستخدم طريقة TransferspreadSheet لإنشاء التصدير ، ومع ذلك لا أحتاج إلى رؤوس الأعمدة. بمجرد إنشاء الملف ، لدي الرمز افتح الملف وحذف الرؤوس. كما أن الكود الحالي يستخدم تاريخ اليوم في اسم الملف وهو غير دقيق. يجب أن يعكس اسم الملف التاريخ الذي تم اختياره من قبل المستخدم في مربع النص من التقويم المنبثق
طيب هنا هو الرمز.
Sub Branch298nohdr()
Dim Filename As String
Dim Path As String
Dim Branch As Integer
Dim Text100 As Date
Dim xl
Branch = "298"
Path = "Path" & Branch & "\"
Filename = "Identity Report " & Branch & " " & _
Replace(Text100, ":", " ") & ".xls"
If Dir(Path & Filename) <> "" Then
MsgBox "File has been created already"
If Dir(Path & Filename) <> "" Then
GoTo 53
End If
Else
Set xl = CreateObject("excel.application")
TempVars.Add "branchnum", Branch
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, _
"queryname", Path & Filename, False
xl.workbooks.Open Path & Filename
With xl
.Rows("1:1").entirerow.Delete
.Columns("L:L").select
.Selection.NumberFormat = "0"
.range("a1").select
xl.workbooks(1).Close Savechanges:=True
xl.Quit
Set xl = Nothing
53
MsgBox "Done!"
End With
TempVars.Remove "branchnum"
End If
Branch298nohdr_Exit:
Exit Sub
End Sub
النص 100 هو المكان الذي يختار فيه المستخدم تاريخًا عبر تقويم منبثق. أرغب في استخدام هذا التاريخ كجزء من اسم الملف. تستخدم حاليًا Text100 كجزء من اسم الملف الذي يتم الرجوع إليه على أنه الساعة 12:00 صباحًا ، ثم يضيف ذلك إلى اسم الملف. آمل أن يزيل هذا نيتي.
يتم تعيين Text 100 على نموذج الفتح ، ثم هناك عدة أزرار تسمح للمستخدم بالاختيار بين عدة فروع أو جميع الفروع.
المحلول
حسنًا ، السؤال الواضح هو ، أين يتم تعيين Text100 لأول مرة؟
تعليق نمط آخر ، من الأفضل القيام به
goto ExitSub
'...
ExitSub:
ثم "Goto 53" - إنه أكثر أهمية.
بهذا المعدل ، سيكون من الأفضل نقل رسالتك "المنفذة" خارج العبارات ، ولا يبدو أن Tempvars لها غرض ؛ أزلها.
يحرر:
أفترض ما إذا كان Text100 عبارة عن مربع نص على النموذج ، ثم الخط الذي يقرأ:
Dim Text100 As Date
سوف يتجاوز هذا المرجع في الكود الخاص بك.
إذا كنت تشير إلى مربع النص في الكود الخاص بك ، فأنت بحاجة إلى القيام بذلك بهذه الطريقة:
foo = me.Text100
' or
foo = Forms!FormName.Text100
نصائح أخرى
من الصعب بعض الشيء تحديد ماهية سؤالك بالضبط ، لكنني أعتقد أنك تسأل ، "كيف يمكنني استخدام محتويات مربع النص كاسم ملف تصدير؟" يبدو أنه في مكان ما في الكود الخاص بك ، فإنه ينشئ سلسلة لاسم الملف الذي تم وضع علامة عليه الآن () إلى النهاية لاستخدام التاريخ الحالي في اسم الملف. هل يمكنك ببساطة استبدال "& now ()" بـ '& textbox.value "؟
قال JD Long إنه من الصعب رؤية أي سؤال في نشرك. ربما يجب عليك تعديله مرة أخرى.
ولكن كملاحظة عامة ، تحتاج إلى الهروب من أي أحرف خاصة أدخلها المستخدم قبل أن تستخدم الإدخال في اسم الملف.
لا يُسمح بالأحرف المخصصة التالية:
< > : " / \ | ? *
لمزيد من التفاصيل حول تسمية الملفات في Windows انظر: تسمية ملف أو دليل في MSDN.