ورود

View Full Version : سوال: مشکل با VSFLEXGRID و دیتابیس اکسس 2003



m.4.r.m
یک شنبه 03 دی 1391, 11:01 صبح
سلام من چندی پیش این کد رو نوشته بودم تو یه برنامم با پایگاه داده SQL :

اضافه کردن به Vsflexgrid :

If txtname.Text <> "" Then
With VSFlexGrid1
If (.TextMatrix(.Rows - 1, 2) <> txtprid.Text) And (cont.Value > 0) Then
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 1) = txtid.Text
.TextMatrix(.Rows - 1, 2) = txtprid.Text
.TextMatrix(.Rows - 1, 3) = txtprname.Text
.TextMatrix(.Rows - 1, 4) = cont.Value
Else
MsgBox "ÎØÇíí ÑÎ ÏÇÏå ÇÓÊ :" & vbCrLf & "1- ãÍÕæá ãæÑÏ äÙÑ Ê˜ÑÇÑí ÇÓÊ" & vbCrLf & "2- ÊÚÏÇÏ ãÍÕæá ÍÏÇÞá ÈÇíÏ 1 ÈÇÔÏ" _
, vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, ""
End If
End With
Else
MsgBox "áØÝÇ ØÑÝ ÍÓÇÈ ÑÇ ãÔÎÕ äãÇÆíÏ", vbExclamation, ""
End If

اینم کد ذخیره کردن :
Adodc2.RecordSource = "Select * from Sale2"
Adodc2.Refresh

Dim i
With VSFlexGrid1

If .Rows = 1 Then Beep: Exit Sub
For i = 1 To .Rows - 1
Adodc2.Recordset.AddNew Array("SaleID", "ProductID", "ProductName", "Count"), Array(.TextMatrix(i, 1), .TextMatrix(i, 2), .TextMatrix(i, 3), .TextMatrix(i, 4))
Adodc2.Recordset.Update
Next i
MsgBox "ÝÇ˜ÊæÑ ÝÑæÔ ÈÇ ãæÝÞíÊ ËÈÊ ÔÏ", vbInformation + vbMsgBoxRtlReading, ""
'.Rows = 1
txtid.Text = txtid + 1
End With

حالا همین کد تو پایگاه داده اکسس خطا میده و قبول نمی کنه اینم خطا :

Multiple-Step Operation Generate Error check each status value

چیکار کنم ؟

SlowCode
یک شنبه 03 دی 1391, 13:20 عصر
سلام
این مشکل از اکسس نیست، مشکل در مقادیری هست که بهش میدی، برنامه رو در حالت Debug اجرا کن و مقادیر رو کنترل کن احتمالا یه مقدار صفر یا Null به فیلدی دادی که قبولش نمیکنه.
و یا ممکنه مقداری بزرگتر از max مقدار فیلد وارد شده باشه.

m.4.r.m
یک شنبه 03 دی 1391, 21:56 عصر
حل شد مشکل ممنون خودم حلش کردم با کلی کلنجار

TandisSoft
پنج شنبه 11 اردیبهشت 1393, 21:56 عصر
کلنجار نمیخواد. این خطا بیشتر در زمانی صادر میشه که شما در فیلدی که بعنوان کلید اصلی (Primary Key) در نظر گرفتی مقدار Null یا تکراری وارد کرده باشی. در sql server در زمان طراحی بانک اطلاعاتی گزینه Auto Increment فعال بوده و باید در Access نوع فیلد رو بذاری Auto Number همین