PDA

View Full Version : فرم وDlookupو نمایش اطلاعات



shkeramat
سه شنبه 12 اردیبهشت 1391, 23:09 عصر
با سلام در فایل پیوست فرمی دارم با تکست باکسهای unbound دارم که در اولین آنها کد پرسنل وارد میشود و در بقیه با فرمول dlookup اطلاعات متناظر دیده میشود حال
1- وقتی فرم لود میشود چوت تکست باکس اول خالی است کلمه ارورر در بقیه نوشته میشود چکار کنم تا این مسله برطرف شود؟

2- میخواهم بعد از ورود اولین کد و دیدن اطلاعات در صورت نیاز با کامندباتونهای قبلی یا بعدی کد دیگری را مشاهده کنم کد نویسی مورد نیاز چیست؟ خواهشا پاسخ دهید

arpachi
چهارشنبه 13 اردیبهشت 1391, 09:11 صبح
با سلام
دوست عزیز برای چند باکس اول ویرایش کردم برای بقیه هم به همین منوال ادامه بدید.

shkeramat
چهارشنبه 13 اردیبهشت 1391, 19:09 عصر
با سلام بابت پاسخ سوال اول سپاسگزارم
جواب سوال دوم را میدانید

shkeramat
پنج شنبه 14 اردیبهشت 1391, 19:51 عصر
با سلام - میخواهم بعد از ورود اولین کد و دیدن اطلاعات در صورت نیاز با کامندباتونهای قبلی یا بعدی رکورد دیگری را مشاهده کنم کد نویسی مورد نیاز چیست؟ خواهشا پاسخ دهیدضمنا فرم unbound است

shkeramat
پنج شنبه 14 اردیبهشت 1391, 22:08 عصر
با سلام در فایل پیوست فرم دیگری درست کردم بنام fmT و با روش نمونه اکسس سوال حرکت بین رکوردها را حل کردم
ولی با این روش نمیدونم چکار کنم تا موقع لود شدن فرم مثل سابق تا پر شدن تکست باکس code همچنان تکست باکسها خالی باشد . ممنون میشوم به بزرگواری خودتان نگاه کنید

Abbas Amiri
جمعه 15 اردیبهشت 1391, 17:52 عصر
فایل اصلاح شد

shkeramat
جمعه 15 اردیبهشت 1391, 22:05 عصر
با سلام و سپاس فراوان از لطف شما اگر امکان دارد دو سوال دیگر دارم
1- برای حرکت بین رکوردها جمع و منهای یک(1) شده حالا اگر احیانا بین کدها کد خالی باشه تست کردم جواب نمیدهد آیا باید به کد نوشته شده چیزی اضافه بشود؟
2- اگر به این فرم یک سابفرم اضافه کنم مثل فرم معمولی دیگرست یا سابفرم مشکل خواهد داشت؟
با تشکر بسیار

Abbas Amiri
شنبه 16 اردیبهشت 1391, 00:18 صبح
کدهای زیر را جایگزین کنید


Private Sub cmdNext_Click()
If IsNull(txtCode) Then Exit Sub
SetData txtCode, 1
End Sub

Private Sub cmdPrev_Click()
If IsNull(txtCode) Then Exit Sub
SetData txtCode, -1
End Sub
Private Sub txtCode_AfterUpdate()
If IsNull(txtCode) Then Exit Sub
SetData txtCode
End Sub
Sub SetData(ID As Long, Optional Inc As Integer = 0)
Dim rs As Recordset, fld As Field, k As Long
k = ID + Inc
If k > Nz(DMax("Code", "Mabna"), 0) Or k < Nz(DMin("Code", "Mabna"), 0) Then
Exit Sub
Else
Do While k <= Nz(DMax("Code", "Mabna"), 0) Or k >= Nz(DMin("Code", "Mabna"), 0)
If IsNull(DLookup("Code", "Mabna", "code=" & k)) Then
If Inc = 0 Then Exit Sub
k = k + Inc
Else
Exit Do
End If
Loop
End If
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Mabna WHERE Code=" & k)
If rs.RecordCount = 0 Then
Exit Sub
End If
For Each fld In rs.Fields
Me(fld.Name) = Nz(fld)
Next
Set rs = Nothing
txtCode = k
End Sub


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

shkeramat
شنبه 16 اردیبهشت 1391, 19:00 عصر
درود و سلام و بی نهایت سپاسگزارم فقط نفرمودید در سابفرم مشکل نخواهم داشت و مثل فرمهای عادی میتوانم سابفرم داشته باشم

shkeramat
شنبه 16 اردیبهشت 1391, 19:06 عصر
با عذر خواهی من در فرم کامندباتون دارم تا تکستها را هر وقت خواستم خالی کند برای نمونه
Private Sub Command23_Click()
Me.code = " "
Me.FN = " "
Me.LN = " "
Me.Nf = " "
End Sub
آیا کد هست که نیاز نباشه تک تک تکستها نام ببرم تا خالی بشه؟ با تشکر

Abbas Amiri
شنبه 16 اردیبهشت 1391, 20:41 عصر
اگر سابفرم به فرم اصلی ارتباط نداشته باشد ( Master & Child) مشکلی نیست . درمورد مقداردهی به گروهی ازکنترلها بنده بارها درتاپیکهای مختلف توصیه ایی که داشته ام استفاده از خصوصیت Tag است . در مثال زیر می توانید با ارسال فرم به روال کنترلهایی که قابلیت نول شدن دارند ، مقدار نول میگیرند . همچنین اگر برای کنترلهای بخصوصی مقدار Tag آنها را تنظیم کرده باشید و انرا بعنوان آرگومان strTag به روال زیر بدهید فقط به روی آن کنترلها عملیات انجام خواهدشد


' Example:
' EnableControls Me, ,"Specs"
Sub SetControls2Null(frm As Form, Optional NewVal = Null, Optional strTag As String = "")
Dim ctl As Control, ctlType As AcControlType
For Each ctl In frm.Controls
ctlType = ctl.ControlType
If ctlType = acTextBox Or ctlType = acComboBox Or ctlType = acComboBox Then
If ctl.Tag = strTag Then
ctl.Value = NewVal
End If
End If
Next
End Sub

shkeramat
شنبه 16 اردیبهشت 1391, 20:49 عصر
با سلام مجدد قسمت دوم گرچه سخت بود مفهوم شد با سپاس
ولی در خصوص قسمت اول سابفرم من دقیقا میخواهم از طریق سابفرم برای هر کد پرسنل اطلاعاتی در جدول دیگر اضافه کنم