PDA

View Full Version : مشکل در بانک اطلاعاتی



saber110
چهارشنبه 01 آبان 1387, 12:39 عصر
سلام
من یه برنامه با وی بی و اکسس ساختم

تا همین چند وقت پیش خوب کار می کرد تا اینکه یهو ارور ران تایم 96 داد...

مربوط به بانک اطلاعاتی هستش

یکی از جدوالم حدود 8000 تا رکورد داره وقتی رکورد های بالای 6000 رو پاک می کنم درست

می شه ولی اگه حتی 6500 هم بزام باز ارور می ده

لطفا من رو راهنمایی کنید.. من مبتدی هستم....
ممنون:قلب:

amirzazadeh
چهارشنبه 01 آبان 1387, 13:19 عصر
دوست من به نظر مياد حجم بانك اكسس شما از 2GB فراتر رفته وهمونطور كه ميدونين اكسس بيش از اين مقدار رو ساپورت نميكنه.اگر اينطوره شما دو تا راه حل دارين اول اينكه اطلاعات قديمي رو در يك ديتا بيس خالي بايگاني كنيد و فقط اطلاعات جديد رو در بانكتون نگهداري كنين و يا بانكتون رو به SQL SERVER انتقال بدين.
..............................
موفق باشيد

saber110
چهارشنبه 01 آبان 1387, 13:34 عصر
نه حجم فایلم 3 مگ بیشتر نیست

amirzazadeh
چهارشنبه 01 آبان 1387, 13:55 عصر
نه حجم فایلم 3 مگ بیشتر نیست
اگر ممكنه متن كامل خطا رو رو آپلود كن شايد دوستان راه حلي داشته باشند.
..........................
موفق باشيد

saber110
چهارشنبه 01 آبان 1387, 14:03 عصر
سلام
ممنون آقای امیر زاده از وقتی که گذاشتید

تا دیروز درست کار می کرد یهو اینجوری شدhttp://forum.majidonline.com/majidonline/smiley_new/majidonline_cry.gif
کد ارور اینه

Error 96 :
Invalid use of Null

در ضمن به این باگ میده text2.Text = Adodc1.Recordset(1).Value
اینم کل کد فرمم


Option Explicit
Dim strsearch As String
Dim tarikhjo As Date
Private Sub lockedfield()
text1.Locked = True
text2.Locked = True
Text3.Locked = True
Text4.Locked = True
Text5.Locked = True
Text6.Locked = True
Text7.Locked = True
End Sub

Public Sub unlockedfield()
text1.Locked = False
text2.Locked = False
Text3.Locked = False
Text4.Locked = False
Text5.Locked = False
Text6.Locked = False
Text7.Locked = False
End Sub



Private Sub cmdcancel_Click()
Adodc1.Recordset.CancelUpdate
Call hidebutton
Call lockedfield
End Sub

Private Sub cmddelete_Click()
If Adodc1.Recordset.BOF And Adodc1.Recordset.EOF Then
Exit Sub
End If
Dim strp As Integer
strp = MsgBox("آيا مي خواهيد ركورد جاري را خذف كنيد؟", vbYesNo, "حذف")
If strp = 6 Then
Adodc1.Recordset.Delete
End If
Adodc1.Recordset.MovePrevious
If Adodc1.Recordset.BOF Then
Adodc1.Recordset.MoveNext
End If
If Adodc1.Recordset.BOF And Adodc1.Recordset.EOF Then
Exit Sub
End If
text2.Text = Adodc1.Recordset(1).Value
End Sub

Private Sub cmdfirst_Click()
If Adodc1.Recordset.BOF And Adodc1.Recordset.EOF Then
Exit Sub
End If
Adodc1.Recordset.MoveFirst
text2.Text = Adodc1.Recordset(1).Value
End Sub

Private Sub cmdlast_Click()
If Adodc1.Recordset.BOF And Adodc1.Recordset.EOF Then
Exit Sub
End If
Adodc1.Recordset.MoveLast
text2.Text = Adodc1.Recordset(1).Value
End Sub

Private Sub cmdmain_Click()
Form6.Hide
Unload Form6
Form2.Show
End Sub

Private Sub cmdmodify_Click()
Call unhidebutton
Call unlockedfield
End Sub

Private Sub cmdnew_Click()
Call unhidebutton
Call unlockedfield
text2.Text = ""
Adodc1.Recordset.AddNew
End Sub

Private Sub cmdnext_Click()
If Adodc1.Recordset.BOF And Adodc1.Recordset.EOF Then
Exit Sub
End If
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF Then
Adodc1.Recordset.MoveLast
End If
text2.Text = Adodc1.Recordset(1).Value
End Sub

Private Sub cmdok_Click()
Dim X As Integer
tarikhjo = CDate(text2.Text)
Adodc1.Recordset(1).Value = CStr(tarikhjo)
On Error Resume Next
Adodc1.Recordset.Update
If Err <> 0 Then
X = MsgBox("شماره پرونده وجود ندارد", , "خطا")
Exit Sub
End If
Call hidebutton
Call lockedfield
End Sub

Private Sub cmdperivious_Click()
If Adodc1.Recordset.BOF And Adodc1.Recordset.EOF Then
Exit Sub
End If
Adodc1.Recordset.MovePrevious
If Adodc1.Recordset.BOF Then
Adodc1.Recordset.MoveFirst
End If
text2.Text = Adodc1.Recordset(1).Value
End Sub

Private Sub cmdsearch_Click()
Dim book1 As Variant
book1 = Adodc1.Recordset.Bookmark
Adodc1.Recordset.MoveFirst
If optshomare.Value Then
strsearch = InputBox("لطفا شماره پرونده شخص مور نظر را وارد كنيد")
If strsearch = "" Then
Adodc1.Recordset.Bookmark = book1
Exit Sub
End If
Adodc1.Recordset.Find "shomare_parvande=" & strsearch
Command2.Enabled = True
If Adodc1.Recordset.EOF Then
Adodc1.Recordset.Bookmark = book1
MsgBox ("شخص مورد نظر وجود ندارد")
Exit Sub
End If
text2.Text = Adodc1.Recordset(1).Value
End If
End Sub

Private Sub Command1_Click()
Dim bk
bk = Adodc1.Recordset.Bookmark
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select count(shomare_parvande) from moraje where shomare_parvande='" & text1.Text & "'"
Adodc1.Refresh
Label3.Caption = Adodc1.Recordset.Fields(0).Value
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from moraje"
Adodc1.Refresh
Adodc1.Recordset.Bookmark = bk
End Sub

Private Sub Command2_Click()
Dim X As String
cmdsearch.Enabled = False
If Not Adodc1.Recordset.EOF Then
Adodc1.Recordset.MoveNext
End If
If Adodc1.Recordset.EOF Then
X = MsgBox("شخص مورد نظر پيدا نشد", , "جستجو")
cmdsearch.Enabled = True
Command2.Enabled = False
Adodc1.Recordset.MoveFirst
Exit Sub
End If
Adodc1.Recordset.Find "shomare_parvande=" & strsearch
If Not Adodc1.Recordset.EOF Then
text2.Text = Adodc1.Recordset(1).Value
End If
End Sub

Private Sub Form_Load()
strsearch = no
Call lockedfield
Call hidebutton
Calendar = vbCalHijri
If Adodc1.Recordset.BOF And Adodc1.Recordset.EOF Then
Exit Sub
End If
Adodc1.Recordset.Sort = "tarikh"
Adodc1.Recordset.Find "shomare_parvande=" & no
If Adodc1.Recordset.EOF Then
Adodc1.Recordset.MoveFirst
End If
text2.Text = Adodc1.Recordset(1).Value
End Sub

Public Sub hidebutton()
cmddelete.Visible = True
cmdmodify.Visible = True
cmdnew.Visible = True
cmdsearch.Visible = True
cmdlast.Visible = True
cmdperivious.Visible = True
cmdnext.Visible = True
cmdfirst.Visible = True
cmdcancel.Visible = False
cmdok.Visible = False
cmdmain.Visible = True
End Sub

Public Sub unhidebutton()
cmddelete.Visible = False
cmdmodify.Visible = False
cmdnew.Visible = False
cmdsearch.Visible = False
cmdlast.Visible = False
cmdperivious.Visible = False
cmdnext.Visible = False
cmdfirst.Visible = False
cmdcancel.Visible = True
cmdok.Visible = True
cmdmain.Visible = False
End Sub


Private Sub Text2_LostFocus()
Dim X As Integer
If Not IsDate(text2.Text) Then
text2.Text = ""
X = MsgBox("لطفا يك تاريخ معتبر وارد كنيد.", , "خطا")
text2.SetFocus
End If
End Sub

saber110
چهارشنبه 01 آبان 1387, 14:24 عصر
یافتم

بجای
text2.Text = Adodc1.Recordset(1).Value
این رو
If IsNull(Adodc1.Recordset(1).Value) = False Then
text2.Text = Adodc1.Recordset(1).Value
Else
text2.Text = ""
End If
قرار دادم
یعنی اگر مقدار Null بود مقدار text2.Text را بجای مقدار دهی مستقیم که ایجاد خطا می کنه، صرفا خالی می کنم.