منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : جملة if elseif
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
جملة 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
جرب أن تستعمل الكود الذي عدلته لك !
كود :
   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
(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 لا يعمل معي

كود :
 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


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