PDA

View Full Version : سوال در مورد adodc



a_m_i_n_000
پنج شنبه 14 اردیبهشت 1391, 00:30 صبح
سلام .
خواهش میکنم راهنمایی کنید مشکل این کد چیه . میخوام یه مقدار رو تو دیتابیس سرچ کنم و تو همون سطری که قرار داشته به جای مقدار قبلی مقدار جدید ثبت شه ولی این خطا رو میده : Query Too Complex (http://support.microsoft.com/kb/103429)

Dim b As Integer
Dim c As Integer
b = Text1.Text
Adodc101.RecordSource = "SELECT * FROM kanalrikhtenashode WHERE ShomareKanal LIKE '%" & b & "%'"
Adodc101.Refresh
Adodc101.Recordset.MoveFirst
For c = 0 To List1.ListCount - 1
Adodc101.Recordset.Fields(c) = Trim(List1.List(c))
Next
Adodc101.Recordset.Update
End Sub

ROSTAM2
پنج شنبه 14 اردیبهشت 1391, 01:19 صبح
'%" & b & "%'"
فکر کنم کاراکتر جایگزین * باید استفاده شه ! البته :متفکر:

a_m_i_n_000
پنج شنبه 14 اردیبهشت 1391, 08:28 صبح
چي رو جايگزين چي كنم ؟ :افسرده:
يعني خطلا تو قسمت آپديت نيست ؟ :متعجب:

ROSTAM2
پنج شنبه 14 اردیبهشت 1391, 14:33 عصر
نگفتی کدوم لاین و خطا می ده ..............................:اشتباه:

a_m_i_n_000
پنج شنبه 14 اردیبهشت 1391, 18:59 عصر
لاین آپدبت :گریه:
Adodc101.Recordset.Update

چیکار کنم از برنامم فقط این قسمت مونده

SlowCode
پنج شنبه 14 اردیبهشت 1391, 19:17 عصر
چیزی که به نظر من میاد اینه:
قبل از نوشتن دستور آپدیت باید addnew یا edit رو مینوشتیم، به نظر من چون یکی از اونارو ننوشتی خطا میده.
حالا یه بار اون دستور آپدیت رو حذف کن، اگه درست نشد قبل حلقه Data1.recordset.edit رو بنویس.

البته مطمئن نیستم ولی گفتم شاید مشکلت درست بشه.

a_m_i_n_000
پنج شنبه 14 اردیبهشت 1391, 20:19 عصر
addnew که یه رکورد جدید میسازه و adodc اصلا edit نداره :گریه: و و قتی سطر update رو پاک میکنم دیتا بیسم هیچ تغییری نمی کنه :اشتباه:

یعنی adodc هیج راحی واسه اینطوز ادیت نداره ؟ مگه میشه ؟ نکنه نداشته باشه من مبنای برنامم adodc بوده :افسرده:

M.T.P
پنج شنبه 14 اردیبهشت 1391, 20:35 عصر
استفاده از حلقه برای آپدیت کردن رکوردها روش جالبی نیست.
شما با یک خط کد دستور SQL می تونید این کار رو براحتی و برای هر تعداد رکورد که دارید انجام بدید.

مثال:
در دستور زیر در جدول tblUsers تمامی اسامی Ali در فیلد fldName به Reza تغییر پیدا می کنند.


Adodc1.RecordSource = "Update TblUsers SET fldName='Ali' Where fldName ='Reza'"
Adodc1.Refresh

s.hematii
پنج شنبه 14 اردیبهشت 1391, 22:19 عصر
این کد با عنصر dataالبته 1جورایی شبیه adodc شما اول باید بگی اون قبلی رو پاک کنه و بعد جاش 1سطر دیگه اضافه کنه و update کنه فک کنم درست شه
Private Sub Edit_Click()

If Text1.Text = Text2.Text And Text1.Text <> "" Then
F = MsgBox("Do You Want save edited the file", vbYesNo)
If F = 6 Then
Data1.Recordset.Delete
If Text1.Text <> "" And RichTextBox1.Text <> "" Then
On Error Resume Next
Data1.Recordset.MoveFirst
Data1.Recordset.AddNew
Data1.Recordset.Fields("Word") = Trim(Text1.Text)
Data1.Recordset.Fields("Define") = Trim(RichTextBox1.Text)
Data1.Recordset.Update
Text1.Text = ""
RichTextBox1.Text = ""
Else
MsgBox "Not Data"
End If
Text1.SetFocus
Data1.Refresh
End If
End If
End Sub
البته این کار باعث میشه editشه اگه دوباره سرچ کنی میبینی که ویرایش شده رو نشون میده اما تو دیتا بیست همون طوره مگه اینکه از add-insو visual data managerبری و tabet رو refresh کنی تا اونجا هم نشون بده

a_m_i_n_000
پنج شنبه 14 اردیبهشت 1391, 22:26 عصر
استفاده از حلقه برای آپدیت کردن رکوردها روش جالبی نیست.
شما با یک خط کد دستور SQL می تونید این کار رو براحتی و برای هر تعداد رکورد که دارید انجام بدید.

مثال:
در دستور زیر در جدول tblUsers تمامی اسامی Ali در فیلد fldName به Reza تغییر پیدا می کنند.


Adodc1.RecordSource = "Update TblUsers SET fldName='Ali' Where fldName ='Reza'"
Adodc1.Refresh


یعنی میشه در کنار adodc از این روش هم استفاده کرد یا باید کلا برنامه رو از اول شروع کنم و با sql بنویسم ؟ ؟ :متعجب:

ROSTAM2
پنج شنبه 14 اردیبهشت 1391, 23:03 عصر
برای اضافه کردن

Sub InsertType(ByVal Name As String, ByVal Variables As String, ByVal Structure As String, ByVal Description As String)
Dim Fields(), Values()
Fields = Array("Kind", "Name", "DataType", "Parameters", "Structure", "Description")
Values = Array("B", Name, "", Variables, Structure, Description)
With Dialog.Adodc1
.RecordSource = "Select * From Members"
.Recordset.AddNew Fields, Values
.Refresh
End With
End Sub

برای بروز رسانی

Sub ModifyType(ByVal ADO As Adodc, ByVal Name As String, ByVal Variables As String, ByVal Structure As String, ByVal Description As String)
Dim Fields(), Values()
Fields = Array("Kind", "Name", "DataType", "Parameters", "Structure", "Description")
Values = Array("B", Name, "", Variables, Structure, Description)
With ADO
.RecordSource = "Select * From Members Where Name LIKE '" + Name + "' And Kind LIKE 'B' And Parameters LIKE '" + Variables + "'"
.Recordset.Update Fields, Values
.Refresh
End With
End Sub

رفتم از پروژه های بایگانی 3-4 سال پیش در آوردم امیدوارم بدرد بخوره

a_m_i_n_000
جمعه 15 اردیبهشت 1391, 21:07 عصر
برای اضافه کردن

Sub InsertType(ByVal Name As String, ByVal Variables As String, ByVal Structure As String, ByVal Description As String)
Dim Fields(), Values()
Fields = Array("Kind", "Name", "DataType", "Parameters", "Structure", "Description")
Values = Array("B", Name, "", Variables, Structure, Description)
With Dialog.Adodc1
.RecordSource = "Select * From Members"
.Recordset.AddNew Fields, Values
.Refresh
End With
End Sub

برای بروز رسانی

Sub ModifyType(ByVal ADO As Adodc, ByVal Name As String, ByVal Variables As String, ByVal Structure As String, ByVal Description As String)
Dim Fields(), Values()
Fields = Array("Kind", "Name", "DataType", "Parameters", "Structure", "Description")
Values = Array("B", Name, "", Variables, Structure, Description)
With ADO
.RecordSource = "Select * From Members Where Name LIKE '" + Name + "' And Kind LIKE 'B' And Parameters LIKE '" + Variables + "'"
.Recordset.Update Fields, Values
.Refresh
End With
End Sub

رفتم از پروژه های بایگانی 3-4 سال پیش در آوردم امیدوارم بدرد بخوره


واقعا" ممنون :قلب:
میشه یه توضیح خط به خط راجع به قسمت اضافه کردن بدین