وعليكم السلام ورحمة الله وبركاته
وكل عام وانتم بخير
جرب هذا الكود:
DoCmd.SelectObject acTable, , True
DoCmd.RunCommand acCmdWindowHide
ولعمله كـ sub
استخدم:
Sub DisplayHideNavPane(Optional Visible As Boolean = True)
DoCmd.SelectObject acTable, , True
If Visible = False Then DoCmd.RunCommand acCmdWindowHide
End Sub
للاظهار استخدم:
DisplayHideNavPane True
وللاخفاء استخدم:
DisplayHideNavPane False
السلام عليكم
استعمل هذا الكود:
On Error Resume Next
Dim req As String
DoCmd.DeleteObject acTable, "zaher11"
Dim PathImg As String
Dim fpath As Variant
With Application.FileDialog(3)
.Title = "اختر التقرير"
.Filters.Clear
.Filters.Add "txt", "*.txt"
.AllowMultiSelect = False
.InitialFileName = "d:\"
If .Show = -1 Then
PathImg = .SelectedItems(1)
End If
End With
'-----------------------------------------------------------
DoCmd.TransferText acImportDelim, (";"), "zaher11", PathImg
req = "Delete From zaher11 where isnull(f1);"
DoCmd.SetWarnings False
DoCmd.RunSQL req
DoCmd.SetWarnings True
'----------------------------------------------------------------
Dim rst As DAO.Recordset
Dim i As Integer, RC As Integer
Set rst = CurrentDb.OpenRecordset("SELECT * FROM [zaher11]")
rst.MoveLast: rst.MoveFirst
RC = rst.RecordCount
For i = 1 To RC
If DCount("*", "[alsnaf]", "[id_sanf]='" & Left(rst!f1, 11) & "'") > 0 Then
'هنا تكتب كود إضافة السلعة للفاتورة
End If
rst.MoveNext
Next i
ادارح الاصناف بضغطت زر.rar
أحسنت أخي الكريم
بالنسبة للمثال الذي أرفقته لك هو من أجل توضيح الفكرة و يمكنك أن تتحكم بها كما تشاء
في هذه الحالة إستعمل الدالة Mid مكان الدالة Left
هذه تستعمل في نوع محدد من الباركود EAN-13
نعم هذه فكرة جيدة
و ربما لو تستعمل خانة واحدة أفضل
مثلا الرقم الذي يبدأ بــ 1 يدل على أصناف الحبة
و الرقم الذي يبدأ بـــ: 2 يدل على أصناف الوزن
و لي تجميعية جيدة بها العديد من الأكواد تستطيع الإستفادة منها:
بالتوفيق إن شاء الله
جرب هذا الماكرو (يحب ان تضع الارقام من 1 الى 12 ) في العامود S ابتداء من S1
Private Sub ComboBox1_Change()
Dim x%, i%
ComboBox2.Clear
x = Application.VLookup(ComboBox1.Text, Range("r1:s12"), 2, 0)
For i = x To 12
ComboBox2.AddItem Range("r" & i).Value
Next
End Sub
السلام عليكم
عيدكم مبارك و كل عام و أنتم بألف خير إن شاء الله
حسب رأي المتواضع أنك تستخدم الوزن سوف يكون أفضل
أما بالنسبة للكود سوف يكون كالتالي:
DoCmd.GoToRecord , , acNewRec
[sub_tbl6].Form![code_article] = Left(Me.code_ar, 6)
[sub_tbl6].Form![article] = DLookup("article", "tbl1", "code_art='" & [sub_tbl6].Form![code_article] & "'")
[sub_tbl6].Form![Qte] = Right(Me.code_ar, Len(Me.code_ar) - 6) / 1000
[sub_tbl6].Form![prix] = DLookup("prix", "tbl1", "code_art='" & [sub_tbl6].Form![code_article] & "'")
[sub_tbl6].Form![total] = [sub_tbl6].Form![prix] * [sub_tbl6].Form![Qte]
Me.Refresh
أدخل رمز السلعة
أول 6 أرقام تمثل رمز السلعة و الباقي يمثل الوزن
و إليك مثال تطبيقي من أجلك
تقسيم_الباركود.rar
شكرا جزيلا لك فعلا انك رائع والنتيجه كما اريدها بالظبط
تعبت حضرتك معايا جدا
لا اعرف ماذا اقول سوي ذادك الله علما وبارك لك فيه
كنت اتمني ان افهم هذه المعادله وماذا تقول ان كان لديك فيديو او شرح الرجاء ارفاقه لي
غير ذلك لا ارجو من الله لك سوي التوفيق
وشكرا جزيلا
اخواني الافاضل
حياك الله اخي / عبد اللطيف وكل عام وانت بخير
اري لا يوجد اي فرق بين الطريقتين
اخي / احمد انا لم اقم باي نوع من الاستيراد كما تفضلت وانما ان قمت بنقل القيمة من حقل في الفرعي الي حقل اخر في الرئيسي بناءا علي طلبك
هذا ان لم اكن قد فهمت سؤالك
ياريت ياريت ايكما يوضح لي بالضبط
غير MAX الى COUNTA لتصبح المغادلة هكذا
=IF(ROWS($A$1:A1)>COUNTA($H$7:$I$50),"",IF(ROWS($A$1:A1)<=COUNTA($H$7:$H$50),H7,OFFSET($I$7,COUNTA($N$6:N6)-COUNTA($H$7:$H$50),)))
او هذه
=IF(ROWS($A$1:A1)>COUNTA($H$7:$I$50),"",INDEX($H$7:$I$50,MOD(ROWS($A$1:A1)-1,COUNTA($H$7:$H$50))+1,INT((ROWS($A$1:A1)-1)/COUNTA($H$7:$H$50))+1))
الملف الجديد
New_Boo;k.xlsx
تم رفع هذا الكود فى مشاركة منفصله
حتى لا ننسى هذه المشاركة فورم ادخال مزدوج الاستخدام
تم ارفاق كود الحل من الفاضل _ رحمه الله/ الحسامي
و لا تنسونا من صالح الدعاء
تحياتى
Prog.rar
Prog (1).rar