نعم جميع اجهزة الباركود لها اعدادات خاصة حسب رغبات العملاء
طريقة فحص قارىء الباركود بعد الاعداد : افتح المفكرة واقرأ الباركود الذي امامك وكرر القراءة ,,, اذا قرأ ونزل لسطر جديد فهذا هو مطلوبك
ما شاء الله
نفخر استاذنا ابو عبدالله بأمثالك بيننا
جميل جدا تمرير كلمة المرور قبل امر الفتح
يتبقى تجربة صاحب السؤال .. واتمنى دالة التمرير تعمل على runTime
حسب علمي لا يوجد مكان لكلمة المرور داخل ShellExecute
الطريقة الوحيدة التي اراها ( قد تنجح وقد لا .. لاني لم اجرب ) .. هي التحايل في نهاية الكود وبعد فتح القاعدة نستخدم sendkeys لارسال كلمة المرور ومرة اخرى ارسال مفتاح Enter
sendkeys "password"
sendkeys "{enter}"
هل تريد حلا كما اشار اخي ابو غفران بمعنى تختار الطابعة من القائمة قبل النقر على الزر
ام تريد حلولا اخرى ؟؟
مثلا عند اعداد الطلب يكون هناك حقلا او مربع تحرير يتم اختيار رقم الطابق بدلا من اسم الطابعة ؟
تفضل هذا الحل يتم فيه اختيار اسم الطابعة
printerB.accdb
دعنا نجرب غير السطر الاول الذي هو في اعلى المحرر بهذا :
Private Declare PtrSafe Function SetDefaultPrinter Lib "winspool.drv" Alias "SetDefaultPrinterA" (ByVal pszPrinter As String) As Long
فقط تم اضافة PtrSafe
اعتقد لا يلزم
لانه عند النقر على الزر فالحدث يقوم بتغيير الطابعة الافتراضية الى الأمر الجديد اولا ثم تتم الطباعة
واذا اردت استخراج اسماء الطابعات برمجيا
هذه الوحدة النمطية للحصول على اسماء الطابعات المثبتة في جهازك
Public Function GetPrinters() As String
Dim prn As Printer
Dim strPrinter As String
If Application.Printers.Count > 0 Then
For Each prn In Application.Printers
strPrinter = strPrinter & """" & prn.DeviceName & """;"
Next
GetPrinters = Left$(strPrinter, Len(strPrinter) - 1)
End If
End Function
ويمكنك مناداة الوحدة النمطية اعلاه واظهار الاسماء في مربع تحرير داخل النموذج
اكتب هذا الكود في حدث الفتح او التحميل للنموذج
Dim strMsg As String
Dim strTemp As String
strTemp = GetPrinters()
If Len(strTemp) = 0 Then
Cancel = True
strMsg = "No installed printers found."
Else
Me.cboPrinter.RowSource = strTemp
End If
باعتبار Me.cboPrinter هو اسم مربع التحرير في النموذج
تفضل
Private Declare Function SetDefaultPrinter Lib "winspool.drv" Alias "SetDefaultPrinterA" (ByVal pszPrinter As String) As Long
Private Sub cmdprt_Click()
' تعيين الطابعة الافتراضية
SetDefaultPrinter ("hp LaserJet 1000")
' أمر الطباعة
DoCmd.OpenReport "yourReport", acViewNormal
End Sub
لست بحاجة الى ip حيث تجد اسم الطابعة في الحاسب الرئيس في شاشة الاجهزة والطابعات
صحيح قد تكون الطابعات من النوع والاسم نفسه ولكن تجد في آخر الاسم ما يدل على الموقع
عليكم السلام
يجب عليك التفصيل اكثر ، طلبك غير مفهوم
انت تعرف عملك ومالذي تريد ولكننا لا نعرف ما يدور في رأسك
هل الفورم هذا موجود عند كل مستخدم بأزراره ؟ اذا الجواب نعم لماذا ؟ ، لانه غير منطقي ... اشرح بالتفصيل ما يحدث بالضبط
اشرح الفكرة والغرض منها بالتفصيل الممل