PDA

View Full Version : سوال: عدم ارسال اطلاعات فلیدی از یک فرم لیست به فرم A یا فرم B



bhd2013
پنج شنبه 14 بهمن 1395, 09:49 صبح
سلام دوستان
در برنامه ضمیمه دو تا فرم A , b داریم که فیلد کد دانشجو را از فرم لیست دانشجو دریافت میشود. مشکلی که هست فقط بار اول اجرا با فرم aیا b اطلاعات به درستی منتقل میشه
مثلا با اجرای فرم a بدون هیچ مشکلی برنامه کار میکنه ولی وقتی که فرم از a خارج میشیم و فرم B را اجرا میکنیم عملیات انتقال درست کار نمیکنه.

این هم کد انتقال فیلد کد دانشجو در رویداد دابل کلیک listbox

If Form_Frm_A.Visible = True Then
Form_Frm_A.txt_id = Me.List0.Column(0)
DoCmd.Close acForm, "Frm_list"

ElseIf Form_Frm_B.Visible = True Then
Form_Frm_B.txt_id = Me.List0.Column(0)
DoCmd.Close acForm, "Frm_list"
End If

bhd2013
جمعه 15 بهمن 1395, 09:41 صبح
دوستان کسی راهکاری نداره

bhd2013
جمعه 15 بهمن 1395, 09:50 صبح
یادش بخیر یک زمانی تو هیمن تلار اکسس هر سوالی می پرسیدی پنج -ششتا راهکار متنوع پاسخ میدادن

والی حالا ...:افسرده:

این سایت مثل سابق فعال نیست و متاسفانه از اهداف اصلی خود دور شده

mazoolagh
شنبه 16 بهمن 1395, 08:10 صبح
در فرم a و فرم b به اینصورت کد رو اصلاح کنین:
Private Sub Command6_Click()
DoCmd.OpenForm "Frm_list", , , , , acDialog, Me.Name
End Sub


و در فرم لیست کد رو به اینصورت دربیارین:
Option Compare Database
Option Explicit
Private Sub Form_Open(Cancel As Integer)
If Nz(Me.OpenArgs, "") = "" Then
Dim v
v = MsgBox("form should be opened from form a or form b", vbCritical, "")
Cancel = True
End If
End Sub
Private Sub List0_DblClick(Cancel As Integer)
Dim frm As Form
Set frm = Forms(Me.OpenArgs)
frm!txt_id = Me.List0
frm!Text4 = Me.List0.Column(1)
DoCmd.Close acForm, "Frm_list"
End Sub

bhd2013
شنبه 16 بهمن 1395, 14:45 عصر
بسیار عالی :تشویق::تشویق:
ممنون از لطفتون

bhd2013
پنج شنبه 21 بهمن 1395, 14:56 عصر
DoCmd.OpenForm "Frm_list", , , , , acDialog, Me.Name


میشه چندتا ارگومان ارسال کرد؟ مثالا نام فرم بعلاوه چند تا متغیر

mazoolagh
شنبه 23 بهمن 1395, 06:04 صبح
میتونین همه پارامترها رو با یک کارآکتر مشخص که مطمئن هستین در هیچکدوم دیده نمیشه به هم بچسبونین و در فرم یا ریپورت دوباره از هم جداشون کنین:

DOCMD.OPENFORM ...... , PARAM1 & "~" & PARAM2 & "~" & PARAM3

SUB FORM_OPEN ...
DIM ARGS AS VARIANT
ARGS=SPLIT(ME.OPENARGS,"~")
DIM PARAM1 AS ..., PARAM2 AS ..., PARAM3 AS ...
PARAM1=ARGS(0)
PARAM2=ARGS(1)
PARAM3=ARGS(2)


البته استفاده از متغیرهای گلوبال (پابلیک) هم همیشه در دسترس هست که در اینصورت دیگه نیازی به OPENARGS نیست