المعلمة المحددة للمستخدم المستخدمة كجزء من اسم الملف في الوصول

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

  •  22-07-2019
  •  | 
  •  

سؤال

لدي قاعدة بيانات 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top