PDA

View Full Version : سوال: رفع اشکال از کد Vba



G.hemati
یک شنبه 13 مرداد 1392, 00:15 صبح
با سلام
من یه مدت کمیه که کد نویسی تو محیط Vba رو با کمک شما خوبان دارم ادامه دنبال میکنم . ممنون میشم اشکالات فایل ضمیمه رو بهم بگین

در داخل فایل کامل توضیح دادم

G.hemati
یک شنبه 13 مرداد 1392, 18:11 عصر
با سلام
در فرمی آنباندی که کدهای زیر را داراست ، برای دادن به اطلاعات جدید چه کدی رو باید استفاده کنم

Private Sub Command27_Click()
If IsNull(TxtP1) And IsNull(TxtP2) Then
TxtSumRadif1 = 0
Else
TxtSumRadif1 = Nz([TxtP2] - [TxtP1], 0) + 1
End If

If IsNull(TxtP3) And IsNull(TxtP4) Then
TxtSumRadif2 = 0
Else
TxtSumRadif2 = Nz([TxtP4] - [TxtP3], 0) + 1
End If

If IsNull(TxtP5) And IsNull(TxtP6) Then
TxtSumRadif3 = 0
Else
TxtSumRadif3 = Nz([TxtP6] - [TxtP5], 0) + 1
End If

TxtSumPalet = TxtSumRadif1 + TxtSumRadif2 + TxtSumRadif3
TxtCodePalet = [TxtP1] & Me.CmbChar.Column(1) & [TxtP2] & Me.CmbChar.Column(2) & _
[TxtP3] & Me.CmbChar.Column(3) & [TxtP4] & Me.CmbChar.Column(4) & [TxtP5] & Me.CmbChar.Column(5) & [TxtP6]

End Sub

Private Sub LblVisP1_Click()
TxtP2.Visible = True
LblVisP2.Visible = True
TxtP2.SetFocus
End Sub
Private Sub LblVisP2_Click()
TxtP3.Visible = True
LblVisP3.Visible = True
TxtSumRadif2.Visible = True
TxtP3.SetFocus
End Sub
Private Sub LblVisP3_Click()
TxtP4.Visible = True
LblVisP4.Visible = True
TxtP4.SetFocus
End Sub
Private Sub LblVisP4_Click()
TxtP5.Visible = True
LblVisP5.Visible = True
TxtSumRadif3.Visible = True
TxtP5.SetFocus
End Sub
Private Sub LblVisP5_Click()
TxtP6.Visible = True
TxtP6.SetFocus
End Sub

Private Sub TxtP1_GotFocus()
Me.CmbChar = 1
End Sub

Private Sub TxtP2_GotFocus()
Me.CmbChar = 2
End Sub
Private Sub TxtP3_GotFocus()
Me.CmbChar = 3
End Sub
Private Sub TxtP4_GotFocus()
Me.CmbChar = 4
End Sub

Private Sub TxtP5_GotFocus()
Me.CmbChar = 5
End Sub

Private Sub TxtP6_GotFocus()
Me.CmbChar = 6
End Sub


ممنون

Abbas Amiri
یک شنبه 13 مرداد 1392, 19:03 عصر
در مورد کمبو باکس کد زیر رو اضافه کنید:



Private Sub Form_Load()
Me.CmbChar.RowSource = "1;'';'';'';'';'';2;' الی ';'';'';'';'';3;' الی ';' و ';'';'';'';4;' الی ';' - ';' الی ';'';'';5;' الی ';' - ';' الی ';' و ';'';6;' الی ';' - ';' الی ';' - ';' الی '"
End Sub


در مورد پیغام Error هم بعد از فعال کدهای مربوط به خالی کردن فیلدها مشکلی دیده نشد.

G.hemati
یک شنبه 13 مرداد 1392, 19:21 عصر
ممنونم استاد

در مورد پیغام Error هم بعد از فعال کدهای مربوط به خالی کردن فیلدها مشکلی دیده نشد. در مورد Error تصاویر زیر رو برمیگردونه
فکر کنم چون من در نمونه فوق در انتهای کدهام فرم رو باز و بسته میکردم با Error مواجه نشدید . در صورتی که نمیخوام فرمم رو باز و بسته کنم
اگه زحمتی نیست نمونه زیر رو ملاحظه بفرمایین

Abbas Amiri
یک شنبه 13 مرداد 1392, 22:09 عصر
در روال CmdNewData_Click مقادیر فیلدها را برابر Null قرار دهید


TxtP1 = Null

G.hemati
سه شنبه 15 مرداد 1392, 23:49 عصر
با سلام
یه سئوال در مورد باند کردن فرم به جدول از طریق کد نویسی داشتم . من کد زیر رو در رویداد On Load فرم قراردادم
ولی Error میده . ممنون میشم راهنمایی بفرمایین

Me.Form.RowSource = "SELECT ProPlan.FirstSerial, ProPlan.EndSerial, ProPlan.SerialCustomer, Serial_Tahvili.IDplan, Serial_Tahvili.FirstSerial_Tahvili, Serial_Tahvili.EndSerial_Tahvili, Serial_Tahvili.Bno_Tahvili"
FROM ProPlan INNER JOIN Serial_Tahvili ON ProPlan.IDplan = Serial_Tahvili.IDplan;"

alirezabahrami
چهارشنبه 16 مرداد 1392, 14:14 عصر
با سلام
یه سئوال در مورد باند کردن فرم به جدول از طریق کد نویسی داشتم . من کد زیر رو در رویداد On Load فرم قراردادم
ولی Error میده . ممنون میشم راهنمایی بفرمایین

Me.Form.RowSource = "SELECT ProPlan.FirstSerial, ProPlan.EndSerial, ProPlan.SerialCustomer, Serial_Tahvili.IDplan, Serial_Tahvili.FirstSerial_Tahvili, Serial_Tahvili.EndSerial_Tahvili, Serial_Tahvili.Bno_Tahvili"
FROM ProPlan INNER JOIN Serial_Tahvili ON ProPlan.IDplan = Serial_Tahvili.IDplan;"

سلام
صدورخطا برای اینست که بجای Me.RecordSource از Me.Form.RowSource استفاده کرده اید.
موفق باشید

G.hemati
چهارشنبه 16 مرداد 1392, 18:04 عصر
ممنونم استاد بهرامی گرامی
من اوامر شما رو به شکل زیر انجام دادم

Private Sub Form_Load()
Me.RecordSource = "SELECT ProPlan.FirstSerial, ProPlan.EndSerial, ProPlan.SerialCustomer, Serial_Tahvili.IDplan, Serial_Tahvili.FirstSerial_Tahvili, Serial_Tahvili.EndSerial_Tahvili, Serial_Tahvili.Bno_Tahvili"
FROM ProPlan INNER JOIN Serial_Tahvili ON ProPlan.IDplan = Serial_Tahvili.IDplan;"
End Sub
اما Syntax Error رو برمیگردونه . از علامت (,) و (;) در لابلای کدها استفاده کردم ولی موفق نشدم

alirezabahrami
چهارشنبه 16 مرداد 1392, 18:43 عصر
ممنونم استاد بهرامی گرامی
من اوامر شما رو به شکل زیر انجام دادم

Private Sub Form_Load()
Me.RecordSource = "SELECT ProPlan.FirstSerial, ProPlan.EndSerial, ProPlan.SerialCustomer, Serial_Tahvili.IDplan, Serial_Tahvili.FirstSerial_Tahvili, Serial_Tahvili.EndSerial_Tahvili, Serial_Tahvili.Bno_Tahvili"
FROM ProPlan INNER JOIN Serial_Tahvili ON ProPlan.IDplan = Serial_Tahvili.IDplan;"
End Sub
اما Syntax Error رو برمیگردونه . از علامت (,) و (;) در لابلای کدها استفاده کردم ولی موفق نشدم
سلام
اگرکد را در یک خط واردکنید مشکی نداره ولی اکر میخواهید کد را در دو خط یا بیشتر واردکنید(خطوط را بشکنید) باید آخر هر خط را با علامت _ & به خط بعد وصل کنید .
کد را بصورت زیر وارد کن!


Me.RecordSource = "SELECT ProPlan.FirstSerial, ProPlan.EndSerial, ProPlan.SerialCustomer, Serial_Tahvili.IDplan, Serial_Tahvili.FirstSerial_Tahvili, Serial_Tahvili.EndSerial_Tahvili, Serial_Tahvili.Bno_Tahvili " & _
"FROM ProPlan INNER JOIN Serial_Tahvili ON ProPlan.IDplan = Serial_Tahvili.IDplan;"


یاعلی