منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] تحويل كود VBA إلى لغة الفيجوال بيسك دوت نت - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] تحويل كود VBA إلى لغة الفيجوال بيسك دوت نت (/showthread.php?tid=33990)

الصفحات: 1 2


تحويل كود VBA إلى لغة الفيجوال بيسك دوت نت - freehego - 26-03-20

اريد المساعدة فى تحويل كود لإضافة حسابات جديدة لشجرة مكتبة بطريقة أوتوماتيكية بناء على جدول المستويات حيث أن البرنامج عندى على أكسس 2010 ويعمل بكفائة ولكن أريد تحويله إلى لغة الفيجوال بيسك دوت نت

كود :
Private Sub cmdactivate_Click()
On Error Resume Next
   Me.SVE.Enabled = True
   Me.cmd_undo.Enabled = True
   Me.EXI.Enabled = False
   mod_button
 Static myl(9) As Integer
 Dim mylen, myclen, mylevel, i As Integer
 Dim myac1, myac2 As String
  myl(1) = DLookup("[L1]", "Chart")
  myl(2) = DLookup("[L2]", "Chart")
  myl(3) = DLookup("[L3]", "Chart")
  myl(4) = DLookup("[L4]", "Chart")
  myl(5) = DLookup("[L5]", "Chart")
  myl(6) = DLookup("[L6]", "Chart")
  myl(7) = DLookup("[L7]", "Chart")
  myl(8) = DLookup("[L8]", "Chart")
  myl(9) = DLookup("[L9]", "Chart")
  myac1 = Me.Bok_No_
  mylen = Len(myac1)
  myclen = 0
  mylevel = 0
    For i = 1 To 9
      myclen = myclen + myl(i)
      If myclen >= mylen Then
       mylevel = i
       myclen = myclen - myl(i)
       myac2 = Left$(myac1, myclen)
       Exit For
      End If
    Next i
'-----------------------------'
   If Len(myac1) <= Len(myl(1)) Then
   Bok_No = DMax("Bok_No", "Books", "IsPrim = True") + 10
   Me.BokLevel = mylevel
   End If
   Me.father_no = myac2
   Me.father_name = Trim(DLookup("[Bok_Name]", "Books", "[Bok_No]=" & myac2))
   Me.father_eng = Trim(DLookup("[Bok_Name_Eng]", "Books", "[Bok_No]=" & myac2))
   If Len(myac1) > Len(myl(1)) Then
   Bok_No = DMax("Bok_No", "Books", "father_no = " & Me.father_no_) + 1
   Me.BokLevel = mylevel
   Me.father_name = Trim(DLookup("[Bok_Name]", "Books", "[Bok_No]=" & myac2))
   Me.father_eng = Trim(DLookup("[Bok_Name_Eng]", "Books", "[Bok_No]=" & myac2))
   End If
   Me.Bok_No.SetFocus
End Sub



RE: تحويل كود VBA إلى لغة الفيجوال بيسك دوت نت - freehego - 26-03-20

أرجو المساعدة


RE: تحويل كود VBA إلى لغة الفيجوال بيسك دوت نت - freehego - 30-03-20

هل من مجيب


RE: تحويل كود VBA إلى لغة الفيجوال بيسك دوت نت - asemshahen5 - 30-03-20

كيفية عمل الشجرة المحاسبية بطريقة احترافية .

او ضع مثالا مصغرا للتعديل عليه .


RE: تحويل كود VBA إلى لغة الفيجوال بيسك دوت نت - freehego - 30-03-20

(30-03-20, 04:14 PM)asemshahen5 كتب : كيفية عمل الشجرة المحاسبية بطريقة احترافية .

او ضع مثالا مصغرا للتعديل عليه .

شكرا على الرد أخى الكريم
المشكلة انه مشروع كبير ومش هاعرف اعمل مثال مصغر لما اريد
ولكن باختصار عندى جدول للحسابات به كود الحساب واسم الحساب وكود الأب وأسم الأب للحساب ومستوى الحساب
وعندى جدول chart لمسويات الحساب وهم 9 مستويات وعايز عند إضافة حساب جديد سواء أب او أبن يكون فى نفس
مستوى الحساب الذى وضعه المستخدم فى جدول chart بمعنى لو أن أول مستوى 2 ديجيت يكون الزيادة 2 ديجيت
يعنى لو حساب الاب 1 يبقى الابن 101 وهكذا على باقى المستويات وهم 9 مستويات


RE: تحويل كود VBA إلى لغة الفيجوال بيسك دوت نت - freehego - 31-03-20

ارجو المساعدة


RE: تحويل كود VBA إلى لغة الفيجوال بيسك دوت نت - asemshahen5 - 31-03-20

ضع مثالا فيه فورم واحدة و قاعدة بيانات فيها جدول واحد لانه ليس من المعقول ان اكتب لك كودا و انا لاعرف جدولك و اعمدته و النافذة و الازرار وضعت لك مثالا بسيط عن الشجرة المحاسبية كما اعرفها فيه تقريبا كل شيئ عن التعامل مع الشجرة المحاسبية .


RE: تحويل كود VBA إلى لغة الفيجوال بيسك دوت نت - freehego - 01-04-20

(31-03-20, 05:05 PM)asemshahen5 كتب : ضع مثالا فيه فورم واحدة و قاعدة بيانات فيها جدول واحد لانه ليس من المعقول ان اكتب لك كودا و انا لاعرف جدولك و اعمدته و النافذة و الازرار وضعت لك مثالا بسيط عن الشجرة المحاسبية كما اعرفها فيه تقريبا كل شيئ عن التعامل مع الشجرة المحاسبية .

مرفق مثال للمطلوب
عند إضافة حساب جديد سواء أب او أبن يكون فى نفس مستوى الحساب الذى وضعه المستخدم فى جدول chart بمعنى لو أن أول مستوى 2 ديجيت يكون الزيادة 2 ديجيت
يعنى لو حساب الاب 1 يبقى الابن 101 وهكذا على باقى المستويات وهم 9 مستويات على أن تكون الإضافة اوتوماتيكيا بناء على المستويات كما سبق
[attachment=24290]


RE: تحويل كود VBA إلى لغة الفيجوال بيسك دوت نت - freehego - 04-04-20

هل من اجابة


RE: تحويل كود VBA إلى لغة الفيجوال بيسك دوت نت - asemshahen5 - 04-04-20

اخي العزيز نظرت الى المثال وجدت الفورم الرئيسة من دون شجرة قلت اذهب لقاعدة البيانات فوجدتها معطوبة على كل حال جهزت لك فانكشن به ما تريد انشاء الله :

PHP كود :
   ''' <summary>
    ''' 
Get Max Id To Tree
    
''' </summary>
    ''' 
<param name="TreeType">TreeView1.SelectedNode.Tag.ToString()</param>
 
   ''' <returns>Integer</returns>
    ''' 
<remarks></remarks>
 
   Function NewTreeID(TreeType As Integer) As Integer
        Dim x 
As Integer 0
        Dim StrSQL 
As String "Select IIF(Max(AccountID) Is NULL,'" TreeType "' + '01',Max(AccountID)+1)As ID From AccountsTree where Type=" TreeType
        Dim cn 
As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=2019.accdb;Jet OLEDB:Database Password=;")
 
       Dim da As New OleDb.OleDbDataAdapter(StrSQLcn)
 
       Dim dt As New DataTable
        da
.Fill(dt)
 
       x dt.Rows(0)("ID").ToString()
 
       Return x
    End 
Function 

و هذا كود استعماله :

PHP كود :
       Txt_AccountID.Text NewTreeID(TreeView1.SelectedNode.Tag.ToString)
 
       Txt_TYPE.Text TreeView1.SelectedNode.Tag.ToString