تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
جملة if elseif
#1
السلام عليكم
جملة if   elseif  المتعددة المتداخلة لا تعمل لدي لا اعرف لماذا .... الكود التالي صيحيح لكنه لا يعمل عندما الغي الجزء الخاص ب elseif فانه يعمل 


  () Public Sub BuyBillFullSearch
        Dim dt As New DataTable
        Dim adapter As New SqlDataAdapter
       () dt.Clear

        If RePay.CKid.Checked = False And RePay.CKBillNo.Checked = False And RePay.CKsupplier.Checked = False And RePay.CKitem.Checked = False Then
            adapter = New SqlDataAdapter("select * From BuyDetailsView where (BuyDetailDate between '" & RePay.Date1.Value.ToString("yyyy-MM-dd") & "' And '" & RePay.Date2.Value.ToString("yyyy-MM-dd") & "')", sqlcon)

        ElseIf RePay.CKid.Checked = True Then
            adapter = New SqlDataAdapter("select * From BuyDetailsView where BuyDetailBuyId = " & RePay.TxtID.Text & "", sqlcon)

            adapter.Fill(dt)
            RePay.DGCReBuy.AutoGenerateColumns = False
            RePay.DGCReBuy.DataSource = dt

        End If
    End Sub
الرد }}}
تم الشكر بواسطة:
#2
جرب أن تستعمل الكود الذي عدلته لك !
كود :
   Public Sub BuyBillFullSearch()

       Dim dt As New DataTable

       Dim adapter1 As New SqlDataAdapter
       adapter1 = New SqlDataAdapter("select * From BuyDetailsView where (BuyDetailDate between '" & RePay.Date1.Value.ToString("yyyy-MM-dd") & "' And '" & RePay.Date2.Value.ToString("yyyy-MM-dd") & "')", sqlcon)

       Dim adapter2 As New SqlDataAdapter
       adapter2 = New SqlDataAdapter("select * From BuyDetailsView where BuyDetailBuyId = " & RePay.TxtID.Text & "", sqlcon)

       dt.Clear()

       If RePay.CKid.Checked = False And RePay.CKBillNo.Checked = False And RePay.CKsupplier.Checked = False And RePay.CKitem.Checked = False Then

           adapter1.Fill(dt)
           RePay.DGCReBuy.AutoGenerateColumns = False
           RePay.DGCReBuy.DataSource = dt

       ElseIf RePay.CKid.Checked = True Then

           adapter2.Fill(dt)
           RePay.DGCReBuy.AutoGenerateColumns = False
           RePay.DGCReBuy.DataSource = dt

       End If

End Sub
الرد }}}
تم الشكر بواسطة: mohamedassim , ابراهيم ايبو
#3
(08-07-22, 09:37 AM)أبو خالد الشكري كتب : جرب أن تستعمل الكود الذي عدلته لك !
كود :
   Public Sub BuyBillFullSearch()

       Dim dt As New DataTable

       Dim adapter1 As New SqlDataAdapter
       adapter1 = New SqlDataAdapter("select * From BuyDetailsView where (BuyDetailDate between '" & RePay.Date1.Value.ToString("yyyy-MM-dd") & "' And '" & RePay.Date2.Value.ToString("yyyy-MM-dd") & "')", sqlcon)

       Dim adapter2 As New SqlDataAdapter
       adapter2 = New SqlDataAdapter("select * From BuyDetailsView where BuyDetailBuyId = " & RePay.TxtID.Text & "", sqlcon)

       dt.Clear()

       If RePay.CKid.Checked = False And RePay.CKBillNo.Checked = False And RePay.CKsupplier.Checked = False And RePay.CKitem.Checked = False Then

           adapter1.Fill(dt)
           RePay.DGCReBuy.AutoGenerateColumns = False
           RePay.DGCReBuy.DataSource = dt

       ElseIf RePay.CKid.Checked = True Then

           adapter2.Fill(dt)
           RePay.DGCReBuy.AutoGenerateColumns = False
           RePay.DGCReBuy.DataSource = dt

       End If

End Sub
عاشت الايادي ... يعمل بشكل ممتاز  .. جزاك الله خير
من فضلك ممكن تشرح لي لماذا استخدمت اثنين ادابتر
مع العلم ان الكود قبل التعديل في اصدار اخر من الفيجول ستوديو يعمل...لكن حاليا في اصدار 2017 لا يعمل معي
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , ابراهيم ايبو
#4

كود :
 Public Sub BuyBillFullSearch()

       Dim dt As New DataTable
       Dim adapter As New SqlDataAdapter
       Dim SQL1, SQL2 As String

       SQL1 = "select * From BuyDetailsView where (BuyDetailDate between '" & RePay.Date1.Value.ToString("yyyy-MM-dd") & "' And '" & RePay.Date2.Value.ToString("yyyy-MM-dd") & "')"
       SQL2 = "select * From BuyDetailsView where BuyDetailBuyId = " & RePay.TxtID.Text & ""

       dt.Clear()

       If RePay.CKid.Checked = False And RePay.CKBillNo.Checked = False And RePay.CKsupplier.Checked = False And RePay.CKitem.Checked = False Then

           adapter = New SqlDataAdapter(SQL1, sqlcon)
           GoTo RunIt

       ElseIf RePay.CKid.Checked = True Then

           adapter = New SqlDataAdapter(SQL2, sqlcon)
           GoTo RunIt

       End If

RunIt:
       adapter.Fill(dt)
       RePay.DGCReBuy.AutoGenerateColumns = False
       RePay.DGCReBuy.DataSource = dt

   End Sub


بارك الله فيك
استخدمت اثنين أدابتر لأنه عندك اثنين من جمل الاستعلام !
ولكن أيضا توجد طريقة ثانية لاستخدام أدابتر واحد إذا استخدمنا الكود التالي :
جربه واعطني النتيجة ...
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , ابراهيم ايبو



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم