16-12-22, 02:22 PM
عندي مشكلة في شاشة كشف حركة الموردين
عند اختيار رقم المورد والضغظ على زر العرض يظهر الخطأ التالي :
data type mismatch in criteria expression
مع العلم ان الكود هو :
DGV.Rows.Clear()
Dim STRING_ As String = "SELECT Sum(debit) , Sum(credit) FROM det_imp WHERE imp_code = '" & imp_code.Text & "' and buy_date < '" & Format(date1.Value.Date, "yyyy/MM/dd") & "' "
Dim CMD As New OleDb.OleDbCommand(STRING_, con)
Dim DA As New OleDb.OleDbDataAdapter
DA = New OleDb.OleDbDataAdapter(CMD)
Dim DT As New DataTable("det_imp")
DA.Fill(DT)
Dim DEBIT, CREDIT As Double
If IsDBNull(DT.Rows(0).Item(0)) = False Then DEBIT = DT.Rows(0).Item(0)
If IsDBNull(DT.Rows(0).Item(1)) = False Then CREDIT = DT.Rows(0).Item(1)
'===== استخراج الرصيد السابق ==========
Dim I = DGV.Rows.Add
DGV.Rows(I).Cells(1).Value = "رصيد قبل فترة"
DGV.Rows(I).Cells(2).Value = Val(DEBIT)
DGV.Rows(I).Cells(3).Value = Val(CREDIT)
'====================================================
Dim DA_1 As New OleDb.OleDbDataAdapter
DA_1 = New OleDb.OleDbDataAdapter(SQL_, con)
Dim DS As New DataSet
DA_1.Fill(DS)
Dim DT_ = DS.Tables(0)
Dim H = DT_.Rows.Count
For M = 0 To DT_.Rows.Count - 1
Dim F = DGV.Rows.Add
DGV.Rows(F).Cells(0).Value = DT_.Rows(M).Item("buy_date")
DGV.Rows(F).Cells(1).Value = DT_.Rows(M).Item("disc_")
DGV.Rows(F).Cells(2).Value = DT_.Rows(M).Item("debit")
DGV.Rows(F).Cells(3).Value = DT_.Rows(M).Item("credit")
DGV.Rows(F).Cells(4).Value = DT_.Rows(M).Item("buy_code")
Next
Dim DE, CR, DIFF As Double
For I = 0 To DGV.Rows.Count - 1
DE = Val(DE) + Val((DGV.Rows(I).Cells(2).Value))
CR = Val(CR) + Val((DGV.Rows(I).Cells(3).Value))
Next
DIFF = DE - CR
txtdebit.Text = DE
txtcredit.Text = CR
txtdeff.Text = DIFF
ملاحظة:
قاعدة البيانات من نوع Access 2016
عند اختيار رقم المورد والضغظ على زر العرض يظهر الخطأ التالي :
data type mismatch in criteria expression
مع العلم ان الكود هو :
DGV.Rows.Clear()
Dim STRING_ As String = "SELECT Sum(debit) , Sum(credit) FROM det_imp WHERE imp_code = '" & imp_code.Text & "' and buy_date < '" & Format(date1.Value.Date, "yyyy/MM/dd") & "' "
Dim CMD As New OleDb.OleDbCommand(STRING_, con)
Dim DA As New OleDb.OleDbDataAdapter
DA = New OleDb.OleDbDataAdapter(CMD)
Dim DT As New DataTable("det_imp")
DA.Fill(DT)
Dim DEBIT, CREDIT As Double
If IsDBNull(DT.Rows(0).Item(0)) = False Then DEBIT = DT.Rows(0).Item(0)
If IsDBNull(DT.Rows(0).Item(1)) = False Then CREDIT = DT.Rows(0).Item(1)
'===== استخراج الرصيد السابق ==========
Dim I = DGV.Rows.Add
DGV.Rows(I).Cells(1).Value = "رصيد قبل فترة"
DGV.Rows(I).Cells(2).Value = Val(DEBIT)
DGV.Rows(I).Cells(3).Value = Val(CREDIT)
'====================================================
Dim DA_1 As New OleDb.OleDbDataAdapter
DA_1 = New OleDb.OleDbDataAdapter(SQL_, con)
Dim DS As New DataSet
DA_1.Fill(DS)
Dim DT_ = DS.Tables(0)
Dim H = DT_.Rows.Count
For M = 0 To DT_.Rows.Count - 1
Dim F = DGV.Rows.Add
DGV.Rows(F).Cells(0).Value = DT_.Rows(M).Item("buy_date")
DGV.Rows(F).Cells(1).Value = DT_.Rows(M).Item("disc_")
DGV.Rows(F).Cells(2).Value = DT_.Rows(M).Item("debit")
DGV.Rows(F).Cells(3).Value = DT_.Rows(M).Item("credit")
DGV.Rows(F).Cells(4).Value = DT_.Rows(M).Item("buy_code")
Next
Dim DE, CR, DIFF As Double
For I = 0 To DGV.Rows.Count - 1
DE = Val(DE) + Val((DGV.Rows(I).Cells(2).Value))
CR = Val(CR) + Val((DGV.Rows(I).Cells(3).Value))
Next
DIFF = DE - CR
txtdebit.Text = DE
txtcredit.Text = CR
txtdeff.Text = DIFF
ملاحظة:
قاعدة البيانات من نوع Access 2016
