PDA

View Full Version : كليك روي دكمه و نوشتن خودكار عدد



mobina.amiry
پنج شنبه 01 بهمن 1388, 21:49 عصر
سلام
من ميخوام يه دكمه بزارم روي فرمم و وقتي كه روي اون دكمه كليك كردم توي تكس باكس يكم خودكار يه عدد بنويسه مثلا يك راووقتي كه برنامه را ميبندم و دوباره اجرا ميكنم و روي دكمه كليك بكنم عدد 2را نشان بده وهمين طور عددهاي بعدي را ممنون ميشم اگه كسي بلده راهنمايي كنه؟؟؟

Pr0grammer
پنج شنبه 01 بهمن 1388, 22:30 عصر
شما باید مقدار قبلی رو در یک جا ذخیره کنی... مثل بانک، فایل متنی، رجیستری یا ... .
بنابراین ، هر زمان که روی دکمه کلیک شد مقدار ذخیره شده در اون مکان رو بدست آورده و بهش یکی اضافه می کنید...

موفق باشید/

polisoftco
جمعه 02 بهمن 1388, 00:33 صبح
اگه شما بانک دارین :
برای بدست آوردن بیشترین مقدار یک فیلد (مثلا فیلد ID)


RS.Open "SELECT max(ID) FROM Table1", strCon, adOpenStatic, adLockOptimistic

خب وقتی که مقدار آخرین رکورد رو گرفتی باید یک واحد بهش اضافه کنی :


Text1.Text = Rs.Fields(0شماره فیلد یا نام فیلد"ID") +1

mobina.amiry
جمعه 02 بهمن 1388, 17:34 عصر
سلام
من خودم با استفاده از اين سورسي كه خودم نوشتم و اينجا قرار دادم كه شما ميتونيد دانلود كنيد اين كار را انجام ميدم ولي دو تا مشكل دارم: مشكل من اينه كه در بعضي از موارد وقتي كه همين برنامه را اجرا ميكنم به جاي عدد مينويسه hg و پيغام خطا ميده ولي بعد از اينكه برنامه را ميبندم و دوباره اجرا ميكنم عدد مينويسه .
مشكل دومم هم اين است كه من ميخوام وقتي كه روي دكمه كليك كردم توي تكس باكس اوليم عدد يك را بنويسه ووقتي كه از برنامه خارشديم و برنامه را دوباره اجرا كرديم و روي دكمه كليك كرديم عدد 2را توي تكس باكس اول بنويسه وهمين جور تا آخر ولي اين برنامه اي كه من نوشتم توي تكس باكس اول مينويسه يك و وقتي كه از برنامه خارج ميشم و دوباره اونا اجرا ميكنم بازم مينويسه يك و بايد دوباره يك بار ديگر روي دكمه كليك كنين تا عدد دو را نمايش دهد ولي من ميخوام عدد بعدي را نشون بده اگه ممكنه برنامه را دانلود كنيد و ببينيد مشكلش كجا است؟؟

دوستان ميتونيد از آدرس زير فايل را دانلود كنيد
http://www.uplod.ir/download.php?file=371033 (http://www.uplod.ir/download.php?file=371033)

lordarma
جمعه 02 بهمن 1388, 17:43 عصر
من سورس رو دانلود کردم ،
همان طور که دوستمون Pr0grammer (http://barnamenevis.org/forum/member.php?u=70458) ، عرض کردند شما می بایست از یک بانک اطلاعاتی در برنامه استفاده کنید تا بتوانید به نتیجه مطلوب برسید ، سورس برنامه شما شامل هیچ بانکی نیست!
اگر با برنامه نویسی بانک اطلاعاتی آشنایی ندارید بهتر است از بانک های متنی یا اکسس استفاده کنید...

پی نوشت: لطفا در نام گذاری فایل های خود از کلمات فارسی استفاده نکنید!:گریه:

mobina.amiry
شنبه 03 بهمن 1388, 10:25 صبح
سلام
من خودم با استفاده از این سورسی که خودم نوشتم و اینجا قرار دادم که شما میتونید دانلود کنید این کار را انجام میدم ولی دو تا مشکل دارم: مشکل من اینه که در بعضی از موارد وقتی که همین برنامه را اجرا میکنم به جای عدد مینویسه hg و پیغام خطا میده ولی بعد از اینکه برنامه را میبندم و دوباره اجرا میکنم عدد مینویسه .
مشکل دومم هم این است که من میخوام وقتی که روی دکمه کلیک کردم توی تکس باکس اولیم عدد یک را بنویسه ووقتی که از برنامه خارشدیم و برنامه را دوباره اجرا کردیم و روی دکمه کلیک کردیم عدد 2را توی تکس باکس اول بنویسه وهمین جور تا آخر ولی این برنامه ای که من نوشتم توی تکس باکس اول مینویسه یک و وقتی که از برنامه خارج میشم و دوباره اونا اجرا میکنم بازم مینویسه یک و باید دوباره یک بار دیگر روی دکمه کلیک کنین تا عدد دو را نمایش دهد ولی من میخوام عدد بعدی را نشون بده اگه ممکنه برنامه را دانلود کنید و ببینید مشکلش کجا است؟؟

دوستان میتونید از آدرس زیر فایل را دانلود کنید
http://www.uplod.ir/download.php?file=371033 (http://www.uplod.ir/download.php?file=371033)


كسي اين كد را نداره البته همين كد ساده را كه فقط با كليك روي دكمه در تكس باكس عدد را نماش بده اگه كسي داره ممنون ميشم بذاره اينجا آخه من نميدونم كه بايد چيكار كنم:اشتباه:

M.T.P
شنبه 03 بهمن 1388, 11:22 صبح
Dim Bank as string

Private sub Form_load()
dim ID as string
Bank = app.path & "\Bank.dat"
If Dir(Bank) = "" then Exit sub
open Bank for input as 1
input #1,ID
text1.text = val(trim(ID)) +1
close 1
Ens Sub

Private sub Form_Unload()
dim ID as string
ID =Trim(Text1.text)
open Bank for output as 1
print #1,ID
close 1
Ens Sub




کد رو از حفظ تو NotePad نوشتم اگه از حروفاش جایی ناقصه خودت زحمتش رو بکش اصلاحش کن
من دقیقا از این روش برای دادن شماره حساب جدید در برنامه حسابداریم استفاده کردم
موفق باشید

mobina.amiry
یک شنبه 04 بهمن 1388, 10:57 صبح
Dim Bank as string


Private sub Form_load()
dim ID as string
Bank = app.path & "\Bank.dat"
If Dir(Bank) = "" then Exit sub
open Bank for input as 1
input #1,ID
text1.text = val(trim(ID)) +1
close 1
Ens Sub


Private sub Form_Unload()
dim ID as string
ID =Trim(Text1.text)
open Bank for output as 1
print #1,ID
close 1
Ens Sub




کد رو از حفظ تو NotePad نوشتم اگه از حروفاش جایی ناقصه خودت زحمتش رو بکش اصلاحش کن
من دقیقا از این روش برای دادن شماره حساب جدید در برنامه حسابداریم استفاده کردم

موفق باشید

سلام
من متوجه نشدم كه بايد چيكار كنم
مثل اينكه اين كدي را كه شما گذاشتيد اينجا بايد من به يه جدولي هم متصل كنم اگه يه برنامه آماده در همين زمينه باشه بزاريد خيلي بهتره چون من متوجه نشدم

polisoftco
یک شنبه 04 بهمن 1388, 11:09 صبح
این کد خودش یک فایل درمسیر بنام Bank.Dat درست میکنه.
و هروقت که اجرا شد یک کد اضافه میکنه و موقع خروج ذخیره میشه و در اجرای دوباره باز یک واحد به عدد قبلی اضافه میشه.
اگه میخای با کلیک بر روی دکمه یک واحد اضافه بشه از این کد استفاده کن.



Dim Bank As String

Private Sub Command1_Click()
Dim ID As String
Bank = App.Path & "\Bank.dat"
If Dir(Bank) = "" Then Exit Sub
Open Bank For Input As 1
Input #1, ID
Text1.Text = Val(Trim(ID)) + 1
Close 1
Dim sID As String
sID = Trim(Text1.Text)
Open Bank For Output As 1
Print #1, sID
Close 1
End Sub

mobina.amiry
یک شنبه 04 بهمن 1388, 14:26 عصر
این کد خودش یک فایل درمسیر بنام Bank.Dat درست میکنه.
و هروقت که اجرا شد یک کد اضافه میکنه و موقع خروج ذخیره میشه و در اجرای دوباره باز یک واحد به عدد قبلی اضافه میشه.
اگه میخای با کلیک بر روی دکمه یک واحد اضافه بشه از این کد استفاده کن.



Dim Bank As String

Private Sub Command1_Click()
Dim ID As String
Bank = App.Path & "\Bank.dat"
If Dir(Bank) = "" Then Exit Sub
Open Bank For Input As 1
Input #1, ID
Text1.Text = Val(Trim(ID)) + 1
Close 1
Dim sID As String
sID = Trim(Text1.Text)
Open Bank For Output As 1
Print #1, sID
Close 1
End Sub


سلام
من برنامه اي كه شما گذاشتيد را دانلود كردم و اونا ديدم اگه من بخوام عددهام از 1شروع بشه بايد چيكارش كنم آخه اين از عدد 40شروع ميكنه؟؟
من يه مشكل ديگه هم دارم من هم اومدم خودم روي فرمم يه تكس باكس گذاشتم با يه دكمه و كد اين برنامه شما را من هم براي قسمت دكمه خودم گذاشتم ولي در برنامه من هيچ عددي را نشان نميدهد علت چيست؟؟؟:افسرده:
بازم ممنون اززحمتتون

polisoftco
یک شنبه 04 بهمن 1388, 17:37 عصر
برای شروع از صفر ابتدا بانکت رو با otepad بازش کن بعدی اون عدد رو یکش کن یا صفرش کن.
دلیلش نبدون بانک هستش، اگه بانک تو مسیر برنامه (برنامتو ذخیره کن) نباشه عددی نشون داده نمیشه.
اگه نشد همون بانکی که توی ضمیمه من بود رو کپی کن بزار تو پوشه ات.

راستی اگه شما دیتابیس دارین بهتره با همون کار کنین، اگه هم ندارین خب بیخیالش باهمین کار کن.
موفق باشین دوست عزیز

mobina.amiry
یک شنبه 04 بهمن 1388, 19:41 عصر
برای شروع از صفر ابتدا بانکت رو با otepad بازش کن بعدی اون عدد رو یکش کن یا صفرش کن.
دلیلش نبدون بانک هستش، اگه بانک تو مسیر برنامه (برنامتو ذخیره کن) نباشه عددی نشون داده نمیشه.
اگه نشد همون بانکی که توی ضمیمه من بود رو کپی کن بزار تو پوشه ات.

راستی اگه شما دیتابیس دارین بهتره با همون کار کنین، اگه هم ندارین خب بیخیالش باهمین کار کن.
موفق باشین دوست عزیز


1-آره من ديتا بيس هم دارم از كدوم بايد استفاده كنم
سلام کد را تونستن توی یه برنامه دیگر هم اجرا کنم
2-فقط این را نفهمیدم ابتدا بانکت رو با otepad بازش کن یعنی باید چیکارش کنم؟؟؟:افسرده:
بازم ممنون

polisoftco
یک شنبه 04 بهمن 1388, 22:13 عصر
شرمنده ، حرف N رو جا انداختم.
یعنی همون فایل Bank.dat رو توی Notepad باز کن و عدد رو تغییر بده.
خب این کدهای خودکار رو توی کدوم قسمتها (جدولها) میخای استفاده کنی، توی همون قسمتها باید بزرگترین کد وارد شده رو بگیری و یک واحد بهش اضافه کنی. اینجا رو توی پستهای قبلی (فک کنم دوم) توضیح داده بودم.

موفق باشین
درود و بدرود

mobina.amiry
یک شنبه 18 بهمن 1388, 21:43 عصر
اگه شما بانک دارین :
برای بدست آوردن بیشترین مقدار یک فیلد (مثلا فیلد ID)


RS.Open "SELECT max(ID) FROM Table1", strCon, adOpenStatic, adLockOptimistic

خب وقتی که مقدار آخرین رکورد رو گرفتی باید یک واحد بهش اضافه کنی :


Text1.Text = Rs.Fields(0شماره فیلد یا نام فیلد"ID") +1



سلام
ببخشيد من ميخوام اين كديي را كه بازدن دكمه خودكار توي اون تكس باكس بنويسه را بتونم توي ديتا بيسم ذخيره كنم آخه اين بانكي كه خودش ايجاد ميكنه بايد حتما هميشه كنارش باشه ولي من ميخوام فايل اجرايي را كه كپي كردم روي صفحه دسكتاپ هم كار كنه اگه بخوام توي ديتا بيسم كد را ذخيره كنم و براي نفر بعدي به اون كد يه واحد اضافه بشه بايد چيه كنم
من از اين كد سر در نياوردم اگه ميشه كمكم كنيد
ممنون

mobina.amiry
شنبه 24 بهمن 1388, 23:42 عصر
سلام
من میخوام این عدد هایی که برای کد عضویت با زدن دکمه به صورت خودکار نوشته میشه را توی دیتا بیس خودم ذخیره کنم نه یه بانک جداگانه من این کد را مینویسم برای ثبت توی دیتا بیس البته با توجه به این کدی که ایجا راهنمایی کردند به من ولی متاسفانه فقط عدد یک را مینویسه و دیگه بیشتر از یک نمیشه
چطوری میتونم کاری کنم که عددم توی دیتا بیس ذخیره بشه و با هر بار کلیک روی دکمه یک واحد به اون عدد اضافه بشه
كد:

Ado.RecordSource = "SELECT memberID FROM member"

Text1.Text = memberID + 1

mobina.amiry
شنبه 24 بهمن 1388, 23:45 عصر
سلام
من ميخوام اين عدد هايي كه براي كد عضويت با زدن دكمه به صورت خودكار نوشته ميشه را توي ديتا بيس خودم ذخيره كنم نه يه بانك جداگانه من اين كد را مينويسم براي ثبت توي ديتا بيس البته با توجه به اين كدي كه ايجا راهنمايي كردند به من ولي متاسفانه فقط عدد يك را مينويسه و ديگه بيشتر از يك نميشه
چطوري ميتونم كاري كنم كه عددم توي ديتا بيس ذخيره بشه و با هر بار كليك روي دكمه يك واحد به اون عدد اضافه بشه

Ado.RecordSource = "SELECT memberID FROM member"

Text1.Text = memberID + 1

mobina.amiry
دوشنبه 26 بهمن 1388, 18:56 عصر
سلام
من ميخوام اين عدد هايي كه براي كد عضويت با زدن دكمه به صورت خودكار نوشته ميشه را توي ديتا بيس خودم ذخيره كنم نه يه بانك جداگانه من اين كد را مينويسم براي ثبت توي ديتا بيس البته با توجه به اين كدي كه ايجا راهنمايي كردند به من ولي متاسفانه فقط عدد يك را مينويسه و ديگه بيشتر از يك نميشه
چطوري ميتونم كاري كنم كه عددم توي ديتا بيس ذخيره بشه و با هر بار كليك روي دكمه يك واحد به اون عدد اضافه بشه

Ado.RecordSource = "SELECT memberID FROM member"

Text1.Text = memberID + 1


سلام
كسي بلد نبود چطوري كد عضويت را كه توي ديتا بيس ثبت ميكنم با كليك روي يه دكمه به اون يه واحد اضافه كنه ودر تكس باكس نمايش بده به صورت خودكار

polisoftco
دوشنبه 26 بهمن 1388, 19:17 عصر
دوست عزیز
شما باید ابتدا بیشترین مقدار member ID رو بگیرین نه خود عدد، بعدش یک مقدار به اون کد اضافه کن و اون رو ذخیرش کن.


Ado.RecordSource = "SELECT max(memberID) FROM member"
text1.text= ado.recordset.fields(0)
text2.text=ado.recordset.fields(0) + 1


خط اول برای ست کردن جدول تنها بایک فیلد
خط دوم برای قرار دادن بیشترین مقدار memberID داخل تکست باکس 1
خط سوم به بیشترین مقدار یک واحد اضافه میکنه و داخل تکست باکس دوم قرار میده

موفق باشی

lordarma
دوشنبه 26 بهمن 1388, 20:53 عصر
بابا ما رو کشتی!:لبخند:
بیا این کدی که نوشتم کارت رو راه می اندازد،
البته با بانک اکسس هست،
اگر متوجه راهنمایی های دوستان نمی شوی،
از این سورس استفاده کن...