PDA

View Full Version : ایجاد خودکار رکورد در زیر فرم



Ali_Fallah
سه شنبه 24 مرداد 1385, 19:36 عصر
دوستان با سلام مجدد
در فایلی که ضمیمه هست سوالی مطرح کردم
امیدوارم که به جواب برسم .
خیلی ممنون

سنبله کار
چهارشنبه 25 مرداد 1385, 09:16 صبح
روی دکمه اجرااین کد را بگذارید
Private Sub Command6_Click()
Dim Count
For Count = az To ta
DoCmd.RunSQL "INSERT INTO far ( cod, num )SELECT asli.cod, " & Count & " FROM asli WHERE (((asli.cod)='" & cod & "'));"
Next
End Sub

Ali_Fallah
چهارشنبه 25 مرداد 1385, 09:53 صبح
ممنونم
فعلاً تست نکردم ولی همین که جواب دادین متشکرم.

سنبله کار
چهارشنبه 25 مرداد 1385, 10:51 صبح
خواهش می کنم
پیشنهاد می کنم تا جایی که امکان داره از پیوست کردن فایلصرف نظر کنید و سوالات رو همینجا مطرح کنید تا حجم کار پایین تر بیاد و با مشکل فضا مواجه نشیم .
ممنون

Ali_Fallah
چهارشنبه 25 مرداد 1385, 12:29 عصر
بله سعی میکنم
اما در مورد کدی که نوشتید ...
برای ایجاد هر رکورد من بایستی یک بار کلیک کنم یعنی اگه خواسته باشم عددی بین 1 تا 100 ایجاد کنم باید 100 بار کلیک کنم ؟

سنبله کار
چهارشنبه 25 مرداد 1385, 13:26 عصر
اگه منظورتون از هر رکورد تویsubform باشه نه فقط یک بار کافیه اما اگه توی فرم اصلی برای ایجاد رکورد جدید می گید بله چون سوال شما این نبود .

Ali_Fallah
چهارشنبه 25 مرداد 1385, 18:11 عصر
البته من منظورم این بود که با یک بار کلیک بتونیم به تعداد دلخواه یا همان مقداری که در فیلدها مقدار دهی می کنیم رکورد ایجاد کنیم آن هم با یک بار کلیک حال چه این کلید توی فرم اصلی باشه یا در ساب فرم فرقی نمیکنه
ضمناً اگه بخواهیم در ساب فرم 2 فیلد داشته باشیم که بخوایم مقدار دهی کنیم قضیه چه جوریه؟

daglararan
چهارشنبه 25 مرداد 1385, 18:22 عصر
اتفاقا درصورت امکان دوستان اگرسئوالات خودرا با یک فایل توضیح بدن درک مطلب برای بقیه خیلی ملموس وعینی تر میشه! باپوزش از سنبله

سنبله کار
شنبه 28 مرداد 1385, 08:41 صبح
البته من منظورم این بود که با یک بار کلیک بتونیم به تعداد دلخواه یا همان مقداری که در فیلدها مقدار دهی می کنیم رکورد ایجاد کنیم آن هم با یک بار کلیک حال چه این کلید توی فرم اصلی باشه یا در ساب فرم فرقی نمیکنه
ضمناً اگه بخواهیم در ساب فرم 2 فیلد داشته باشیم که بخوایم مقدار دهی کنیم قضیه چه جوریه؟
قسمت اول مشکل که رفع شد یعنی با یک کلیک رکوردهای دلخواه ایجاد می شن .
برای مقدار دهی به فیلدهای بیشتر باید در کد بالا بعد از num نام فیلدها و قبل از From مقدار مورد نظرتون رو اضافه کنید .

Ali_Fallah
یک شنبه 29 مرداد 1385, 11:49 صبح
آقای سنبله کار با عرض معذرت
مشکل ایجاد رکورد فقط با یک کلیک حل نشد...

سنبله کار
یک شنبه 29 مرداد 1385, 12:42 عصر
یعنی کد بالا کوردهای بین دو عدد را در subform ایجاد نکرد ؟
اگه می خواهید من نمونه اصلاح شده را آپلود کنم .

Ali_Fallah
یک شنبه 29 مرداد 1385, 12:54 عصر
چرا ولی باید به تعداد روی دکمه کلیک کنید...
اگه ممکنه فایلی رو آپلود کنید...

سنبله کار
یک شنبه 29 مرداد 1385, 13:16 عصر
اینم نمونه اصلاح شده

Ali_Fallah
یک شنبه 29 مرداد 1385, 19:18 عصر
آقای سنبله کار سلام
من فایل شما رو نگاه کردم شاید منظور منو متوجه نشده باشید یا اینکه شاید برنامه شما در سیستم من جواب نده!
به هر حال
در اون 2 تا فیلد ما بعنوان مثال میگیم از شماره 5 باشه تا 10 یعنی 6 تا رکورد در ساب فرم ایجاد بشه خوب منظورم این هستش که فقط با یک بار کلیک این عمل صورت بگیره یعنی 6 تا رکورد به یکباره ایجاد بشه نه 6 بار هی دکمه رو کلیک کنم...
ولی من بایستی دقیقاً 6 بار دکمه رو کلیک کنم یعنی رکوردها بصورت تک تک ایجاد میشه
حالا نمیدونم در سیتم شما طور دیگری هست یانه ؟
ممنون

سنبله کار
دوشنبه 30 مرداد 1385, 09:03 صبح
زحمت بکشید پس از یک بار کلیک به رکورد آخر بروید و دوباره به همان رکورد برگردید نتیجه را حتما در زیر فرم مشاهده خواهید کرد .

Ali_Fallah
چهارشنبه 01 شهریور 1385, 17:46 عصر
دوست عزیز آقای سنبله کار
عرض کنم که با اولین کلیک فوراً پیغامی تولید میشه که با کلیک روی دکمه OK یک رکورد ایجاد میشه و مجدداً بلافاصله دوباره همان پیغام تکرار میشه و تا تعداد رکوردی که میخواهیم ایجاد کنیم این پیغام ادامه داره و اگر کنسل کنیم فقط یک رکورد ایجاد میشه و یا هر تعداد که OK کردیم.
البته ایجاد رکورد بلافاصله نیست بایستی یک رکورد از طریق فرم اصلی به جلو یا عقب بریم که در این حالت رکورد ابجاد شده نشون داده میشه
ومن منظورم جلوگیری از نمایش پیغام بود که با یکبار کلیک فقط یک رکورد ایجاد نشه هر تعدادی که مشخص کردیم به همان تعداد رکورد ایجاد بشه
خیلی ممنونم...

سنبله کار
شنبه 04 شهریور 1385, 07:44 صبح
متوجه مشکل شدم شما باید قبل از کدتون از DoCmd.SetWarnings Falseاستفاده کنید تا دیگه بهتون پیغام نده و در انتها اونو true کنید .
برای جلوگیری از جابجایی رکورد هم کافیه از Requery روی زیرفرمتون استفاده کنید.
موفق باشید.

Ali_Fallah
شنبه 04 شهریور 1385, 19:09 عصر
آقای سنبله کار خیلی از شما ممنونم
حل شد

Ali_Fallah
شنبه 04 شهریور 1385, 19:49 عصر
آقای سنبله کار
من یک فیلد از نوع Number به تیبل Far اضافه کردم بنام b و کد رو نیز تغییر دادم ولی خطا میگیره ...
Private Sub Command6_Click()
DoCmd.SetWarnings False
Dim Count
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
For Count = az To ta
DoCmd.RunSQL "INSERT INTO far ( cod, num, b )SELECT asli.cod, " & Count & " FROM asli WHERE (((asli.cod)='" & cod & "'));"
Next
[Form_far Subform].Requery
DoCmd.SetWarnings True
End Sub
نمیدونم چرا این خطا رو میگیره .

سنبله کار
یک شنبه 05 شهریور 1385, 07:51 صبح
مقدار متناظر با b در ادامه عبارت Select باید بیاد تا هر کدوم از فیلدها یک مقدار بهشون اختصاص داده بشه .

Ali_Fallah
دوشنبه 06 شهریور 1385, 20:37 عصر
فایلی که خواسته بودید
خیلی ممنون

سنبله کار
یک شنبه 12 شهریور 1385, 09:54 صبح
از اینکه دیر شد ببخشید
فایل اصلاح شده رو براتون گذاشتم
اما به نظر می رسه دو نکته باید مورد توجه قرار بگیره
1- فیلد تاتاریخ مورد مصرفی ندارد
2- با گذشتن تعداد مورد انتظار شما از تعداد روز ماه تاریختون اعداد بصورت غلط در قسمت روز می آیند که برای اون باید فکری کنید .
موفق باشید .

Ali_Fallah
یک شنبه 12 شهریور 1385, 18:26 عصر
خیلی متشکرم
ضمنآ به شما آقای سنبله کار و آقای صارمی تبریک میگم...