PDA

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



toytown
چهارشنبه 22 تیر 1390, 13:32 عصر
سلام
من تو برنامه زیر دوتا دکمه دارم :

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

Private Sub Command1_Click()
Set DataGrid1.DataSource = Adodc1
Text4.Text = Text2.Text * Text3.Text
Text6.Text = Val(Text4.Text) + Val(Text5.Text)
Text8.Text = Text7.Text * Text2.Text
Text9.Text = Text8.Text - Text6.Text





Dim a
Dim b
Dim c
Dim d
Dim e
Dim f
Dim g
Dim h
Dim i




a = Text1.Text
b = Text2.Text
c = Text3.Text
d = Text4.Text
e = Text5.Text
f = Text6.Text
g = Text7.Text
h = Text8.Text
i = Text9.Text

Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\bank.mdb;Persist Security Info=False"
'connect as client
Adodc1.CursorLocation = adUseClient
'select the table to use
'SQL command
Adodc1.RecordSource = "Select * from Table1"
Adodc1.Refresh
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("a") = a
Adodc1.Recordset.Fields("b") = b
Adodc1.Recordset.Fields("c") = c
Adodc1.Recordset.Fields("d") = d
Adodc1.Recordset.Fields("e") = e
Adodc1.Recordset.Fields("f") = f
Adodc1.Recordset.Fields("g") = g
Adodc1.Recordset.Fields("h") = h
Adodc1.Recordset.Fields("i") = i
Adodc1.Recordset.Update
Adodc1.Refresh

Text1.Text = "0"
Text2.Text = "0"
Text3.Text = "0"
Text4.Text = "0"
Text5.Text = "0"
Text6.Text = "0"
Text7.Text = "0"
Text8.Text = "0"
Text9.Text = "0"
Adodc1.Refresh






Dim j
Dim k
Dim l
Dim m
Dim n
Dim o
Dim p
Dim q
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\bank.mdb;"

Adodc2.RecordSource = " select sum (b) as FldSUM from (Table1)"
Adodc2.Refresh
j = Adodc2.Recordset.Fields("FldSUM")

Adodc2.RecordSource = " select sum (c) as FldSUM2 from (Table1)"
Adodc2.Refresh
k = Adodc2.Recordset.Fields("FldSUM2")

Adodc2.RecordSource = " select sum (d) as FldSUM3 from (Table1)"
Adodc2.Refresh
l = Adodc2.Recordset.Fields("FldSUM3")

Adodc2.RecordSource = " select sum (e) as FldSUM4 from (Table1)"
Adodc2.Refresh
m = Adodc2.Recordset.Fields("FldSUM4")

Adodc2.RecordSource = " select sum (f) as FldSUM5 from (Table1)"
Adodc2.Refresh
n = Adodc2.Recordset.Fields("FldSUM5")

Adodc2.RecordSource = " select sum (g) as FldSUM6 from (Table1)"
Adodc2.Refresh
o = Adodc2.Recordset.Fields("FldSUM6")

Adodc2.RecordSource = " select sum (h) as FldSUM7 from (Table1)"
Adodc2.Refresh
p = Adodc2.Recordset.Fields("FldSUM7")

Adodc2.RecordSource = " select sum (i) as FldSUM8 from (Table1)"
Adodc2.Refresh
q = Adodc2.Recordset.Fields("FldSUM8")


Text10.Text = j
Text11.Text = k
Text12.Text = l
Text13.Text = m
Text14.Text = n
Text15.Text = o
Text16.Text = p
Text17.Text = q
Dim su
su = Txt.Text
su = su + 1
Txt.Text = su
If su >= 10 Then
Command1.Enabled = False
End If




End Sub

دکمه دوم هم کدش اینه

Private Sub Command5_Click()
Command1.Enabled = True
Dim sss
sss = Txt.Text
sss = sss - 1
Txt.Text = sss
On Error GoTo error:
Adodc1.Recordset.Delete
error:
err_hdl = Err.Number
If err_hdl = -2147467259 Then
Exit Sub
End If




End Sub
حالا وقثی دکمه دوم زده میشه و یک رکورد پاک میشه و بعدش میخوایم به جای رکورد پاک شده یک رکورد جدید وارد کنیم و دکمه اول رو برای این کار میزنیم کل رکورد های جدول پاک میشه و فقط اون رکوردی که آخر کار و بعد از زدن دکمه دوم زده شده به جدول میاد

اینم سورس برنامه لطفا کمکم کنید

M_Maskout
چهارشنبه 22 تیر 1390, 17:58 عصر
سلام
مشکلی که به اون اشاره کردین در پروژه‌ی شما وجود نداره (مشکلات زیاد دیگه‌ای هست که علی القائده به دلیل ناقص بودن پروژست!).
ولی علت پاک شدن تمام اطلاعات شما، وجود سطر
Adodc1.Recordset.Open "delete * FROM Table1"
در رویداد Click از دکمه Command6 یا همون دکمه‌ی خروج هست.

یه سؤال: این سطر رو چرا اونجا نوشتید؟؟؟

toytown
چهارشنبه 22 تیر 1390, 19:00 عصر
دوست عزیز اون دکمه اصلا مشکلی نداره و من وقتی که حتی از دکمه خروج استفاده نکردم این مشکل پیش میاداون کد رو هم برای این تو دکمه خروج نوشتم که وقتی کاربر از برنامه خارج میشه (چون کاربر برای خارج شدن راهی جز دکمه خروج نداره) دیتابیس پاک بشه و وقتی دوباره کاربر خواست از برنامه استفاده کنه برنامه عدد های قبلی رو تو دیتابیس نداشته باشه
در مورد مشکلات زیاد دیگه ای هم که گفتی بیشتر توضیح بده لطفا

اما من هنوز جوابمو نگرفتم

وقتی برنامه رو اجرا کردم و چندبار دکمه وارد کردن اطلاعات رو زدم و بعد دکمه حذف یک رکورد رو زدم و بعد از اون باز دکمه وارد کردن اطلاعات رو زدم همه اطلاعات قبلی پاک میشه

M_Maskout
چهارشنبه 22 تیر 1390, 20:27 عصر
سلام مجدد

1. مشکل گفته شده (یعنی اینکه اگر اول دکمه وارد کردن اطلاعات بزنیم و بعداً دکمه پاک کردن یک ردیف رو بزنیم و مجدداً دکمه وارد کردن اطلاعات رو بزنیم، باعث می‌شه کل اطلاعات پاک بشه) وجود نداره! (من ندیدم)

2. برای اینکه کاربر رو مجبور بکنید تا حتماً از طریق دکمه‌ی خروج، از برنامه خارج بشه، نیازی نیست که نوار عنوان (Title Bar) پنجره رو بر دارید (BorderStyle = 0 - None). بلکه کافیه تو کنترل رویداد QueryUnload از فرم مورد نظر مقدار Cancel رو 1 قرار بدید:

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = 1
End Sub


3. برای اینکه در هر وقت که Txt حاوی مقدار صفر هست، Command4 , Command5 غیر فعال بشه، مقدار Txt.Text رو تو کنترل وقفه‌ی Change، آزمایش کنید:

Private Sub Txt_Change()
Command4.Enabled = Txt.Text <> 0
Command5.Enabled = Txt.Text <> 0
End Sub


4. ...

toytown
جمعه 24 تیر 1390, 19:21 عصر
دوست عزیز درسته اگر یک بار دکمه وارد کردن اطلاعات بزنیم و بعداً دکمه پاک کردن یک ردیف رو بزنیم و مجدداً دکمه وارد کردن اطلاعات رو بزنیم مشکلی نداره ولی اگر مثلا 10 بار دکمه وارد کردن اطلاعات رو بزنیم و بعد دکمه پاک کردن یک ردیف رو بزنیم و مجدداً دکمه وارد کردن اطلاعات رو بزنیمهمه اطلاعات پاک میشه در ضمن اگر بازم برنامه ام مشکل داره ممنون میشم راهنمایی کنید