السلام عليكم ورحمة الله وبركاته
عندي مشكلة وهي انني كنت اريد عمل ترتيب لاعمدة الداتا قريد ووجدت كود واضفته على البرنامج بتاعي لكن ظهرت لي رسالة الخطأ الالية
arguments are of the wrong type, are out of acceptable range, or are in conflict with another
وهذا هو كود البرنامج بتاعي
Option Explicit
Dim FldName As Variant
كود ترتب الاعمدة بالداتا قريد المضاف
Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
'ado_lov اسم الادة ادودكونرول
If ADO_LOV.Recordset.Sort <> DataGrid1.Columns(ColIndex).DataField & " ASC" Then
' Sort in ascending order; this block is executed if the
' data isn't sorted, is sorted on a different field,
' or is sorted in descending order.
ADO_LOV.Recordset.Sort = DataGrid1.Columns(ColIndex).DataField & " ASC"
Else
' Sort in descending order.
ADO_LOV.Recordset.Sort = DataGrid1.Columns(ColIndex).DataField & " DESC"
End If
' No need to refresh the contents of the DataGrid.
End Sub
Private Sub Combo1_Click()
On Error Resume Next
If Combo1.Tag = -1 Then Exit Sub
If IsBlank(Combo1.Text) Then Exit Sub
FldName = ADO_LOV.Recordset.Fields(Combo1.Text).Properties(0).Value
If DataGrid1.Splits.Count > 1 Then DataGrid1.Splits.Remove 1
DataGrid1.Splits.Add 1
DataGrid1.Scroll Combo1.ListIndex, 0
LovCustName.SetFocus
End Sub
Private Sub Form_Load()
On Error GoTo A
Screen.MousePointer = vbHourglass
SQL = "select BL_LAND_DEMAND.DEMAND_NO as " & """رقم الطلب""" & " ,BL_LAND_DEMAND.DOC_DATE as " & """تاريخ الطلب""" & " ,BL_LAND_DEMAND.CITIZEN_NAME as " & """اسم المتقدم""" & ",BL_LAND_DEMAND.KINDNo as " & """نوع المتقدم""" & ",BL_LAND_DEMAND.Computer_No as " & """رقم الحاسب""" & ",BL_LAND_DEMAND.GR_ID as " & """رقم الحفيظة""" & ",BL_LAND_DEMAND.Issue_Date " & """تاريخ الاصدار""" & ",BL_LAND_DEMAND.Birth_Date as " & """تاريخ الميلاد""" & ",BL_LAND_DEMAND.REASON as " & """ملاحظات""" & " from BL_LAND_DEMAND "
With ADO_LOV
.ConnectionString = Cnn.ConnectionString
.RecordSource = "select BL_LAND_DEMAND.DEMAND_NO as " & """رقم الطلب""" & " ,BL_LAND_DEMAND.DOC_DATE as " & """تاريخ الطلب""" & " ,BL_LAND_DEMAND.CITIZEN_NAME as " & """اسم المتقدم""" & ",BL_LAND_DEMAND.KINDNo as " & """نوع المتقدم""" & ",BL_LAND_DEMAND.Computer_No as " & """رقم الحاسب""" & ",BL_LAND_DEMAND.GR_ID as " & """رقم الحفيظة""" & ",BL_LAND_DEMAND.Issue_Date " & """تاريخ الاصدار""" & ",BL_LAND_DEMAND.Birth_Date as " & """تاريخ الميلاد""" & ",BL_LAND_DEMAND.REASON as " & """ملاحظات""" & " from BL_LAND_DEMAND "
.Refresh
' If .Recordset.RecordCount < 1 Then Screen.MousePointer = vbDefault: Exit Sub
End With
With Combo1
.clear
For i = 0 To DataGrid1.Columns.Count - 1
.AddItem DataGrid1.Columns(i).Caption
.List(i) = DataGrid1.Columns(i).Caption
DataGrid1.Columns(2).Width = 3000
Next i
.Tag = -1
.ListIndex = 0
FldName = ADO_LOV.Recordset.Fields(Combo1.Text).Properties(0).Value
.Tag = 0
End With
Screen.MousePointer = vbDefault
Exit Sub
A:
Screen.MousePointer = vbDefault
MsgBox err.Description, vbExclamation, Me.Caption
End Sub
Private Sub Form_Resize()
On Error Resume Next
FrmSearchD.DataGrid1.Width = FrmSearchD.Width - 350
FrmSearchD.Combo1.Width = FrmSearchD.Width - 6000
FrmSearchD.DataGrid1.Height = FrmSearchD.Height - 1570
End Sub
Private Sub LovCustName_Change()
Dim SQL1 As String
If IsNull(FldName) Then
MsgBox "Cannot search by this field"
Exit Sub
End If
If IsBlank(FldName) Then Exit Sub
SQL1 = SQL & " where " & FldName & " like '%" & LovCustName & "%'"
' SQL = nlov.nl_sqlstr & " where " & FldName & " like '" & LovCustName & "%'" & nlov.nl_criteria
ADO_LOV.RecordSource = SQL1
ADO_LOV.Refresh
DataGrid1.Scroll Combo1.ListIndex, 0
End Sub
Private Sub LovCustName_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyTab Then
DataGrid1.SetFocus
End If
End Sub
Private Sub LovCustName_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
If IsBlank(LovCustName) Then Exit Sub
DataGrid1.SetFocus
End If
End Sub