PDA

View Full Version : ذخیره اطلاعات در دو جدول همزمان



marmar
سه شنبه 27 آذر 1386, 20:26 عصر
سلام دوستان
من یه پروژه فوری دارم با بانک اطلاعاتی
قراره با همون Form از access استفاده کنم الان دو جدول دارم
T1 و T2 که T2 یه فیلد بیشتر نداره و قراره lookup بشه به یه فیلد از جدول T1 , حلا وقتی من دکمه add رو می زنم اطلاعاتم تو T1 ذخیره می شه اگه مقداره فیلد مورد نظر من تو combo داخل فرم نباشه کاربر دستی اطلاعات رو وارد می کنه حالا من چطور می تونم بگم اگه کاربر تو combo اطلاعات نورد نظرش رو پیدا نکرد و مجبور شد تایپ کنه این مقدار علاوه بر اینکه تو T1 وارد میشه تو جدول تک فیلدی T2 هم وارد بشه در واقع می خوام مقدار داخل combo هم از تو فرم و به مرور پر بشه لطفا راهنماییم کنید، واضح بگید و راحتترین راه رو پیشنهاد کنید ، جسارت من رو هم ببخشید.
خیلی عجله دارم

marmar
سه شنبه 27 آذر 1386, 21:54 عصر
سوالم سخت بود یا مهم نبودم؟ کدومش؟

mostafa-sohrablou
چهارشنبه 28 آذر 1386, 07:35 صبح
سلام
برای اینکار نیازی نیست شما دو جدول بسازید و از یک جدول یک فیلد را برای یک فیلد جدول بعدی Lookup کنید بلکه شما فقط کافی است برای فیلد جدول اول از خود جدول و همان فیلد برای خودش LookUp بگیرید تا هر زمان که مقداری به آن فیلد اضافه شد در لیست کمبوباکس آن بیاید. فقط دقت کنید که در زمان ساختن Lookup باید فیلدها را Group By نمائید تا از نمایش مقدارهای تکراری جلوگیری نماید.

navi2002
چهارشنبه 28 آذر 1386, 09:49 صبح
سلام دوست عزیز بهتر در قسمت evente ( on not in list ( فرمی که این لیست باکس رو داره
کد زیر رو بنویسید اونوقت اگه کسی عبارتی رو که تو لیست نیست تایپ کنه اتوماتیک به اون جدول اضافه میشه راستی باید به جای table name و field name نام جدول و فیلد مربوطه رو بنویسی موفق باشی

Dim strSQL As String
Dim i As Integer
Dim Msg As String

'Exit this sub if the combo box is cleared
If NewData = "" Then Exit Sub

Msg = "'" & NewData & "' این گزینه در لیست نمی باشد ." & vbCr & vbCr
Msg = Msg & "آیا می خواهید اضافه شود ؟"

i = MsgBox(Msg, vbQuestion + vbYesNo + vbMsgBoxRight, "مقدار ورودی نامعتبر است ")
If i = vbYes Then
strSQL = "Insert Into table name ([field name]) values ('" & NewData & "')"
CurrentDb.Execute strSQL, dbFailOnError
Response = acDataErrAdded
Else
Response = acDataErrContinue
End If

mostafa-sohrablou
چهارشنبه 28 آذر 1386, 10:47 صبح
از دوستان خواهش می کنم ، دوستان برنامه نویس را با جوابهای ساده و روان راهنمایی نمایند. در برنامه نویسی شاید دو جواب یک مسئله را حل کند ولی راهی که ساده تر و سریعتر باشد بهتر است.

moustafa
چهارشنبه 28 آذر 1386, 11:01 صبح
از دوستان خواهش می کنم ، دوستان برنامه نویس را با جوابهای ساده و روان راهنمایی نمایند. در برنامه نویسی شاید دو جواب یک مسئله را حل کند ولی راهی که ساده تر و سریعتر باشد بهتر است.
بنظر من راههای متنوع هم بدنیست چون هم یه تجربه است و هم ممکنه در جای دیگه میشه ازش الگو گرفت و استفاده کرد

HAMRAHSOFT.IR
چهارشنبه 28 آذر 1386, 11:58 صبح
بنظر من اگه نمونه نیز ارسال بشه خیلی بهتر چون دوستان بهتر متوجه میشوند

marmar
چهارشنبه 28 آذر 1386, 13:27 عصر
سلام
مرسی از راهنمایی همتون
آقای سهراب لو من چند تا مشکل دارم در مورد راهنمایی شما
1 تو قسمت design از table وقتی می خوام یک فیلد رو به حالت combo در بیارم تو قسمت lookup ، display رو combo تعریف می کنم
و نیز تو قسمت row source type برابر table/query قرار می دم،و نیز row source رو برابر جدول مورد نظر که شما گفتید خود همین جدول قرار میدم
حالا کجا تعیین کنم که از کدوم فیلد از جدول بخونه ؟
ونیز کجا باید تعیین کنم که فیلدم Group By باشه؟
می شه بیشتر راهنماییم کنید؟
ممنونم

انگوران
شنبه 01 دی 1386, 07:50 صبح
جلوی علامت ... جلوی row source کلیک کنید و در محیط کویری باز شده فیلد مورد نظر را انتخاب نمائید و برای Group By می تونید از نوار ابزار یا منوی view گزینه totals را انتخاب نمائید .

mostafa-sohrablou
شنبه 01 دی 1386, 07:55 صبح
سلام
این هم یه نمونه مثال.
فقط در فرم برای تکست باکس Field2 برای On Got Focus یک کد نوشتم برای UpDate کرد.