PDA

View Full Version : مشکل در اکسس پروجکت



ykm145
جمعه 11 فروردین 1385, 14:25 عصر
دوستان کد زیر در اکسس پروجکت عمل نمیکنه
Docmd.RunSQL("delete from table1 where id=[forms]![form1]![text1
یا
DCount("[id]","[table1]","[id]=[forms]![form]1![text1]")

نمی دونم چرا با forms!form!text1 ارتباط برقرار نمکنه تو کوئریها همینطوره ؟

MMAASS
شنبه 12 فروردین 1385, 01:52 صبح
دوستان کد زیر در اکسس پروجکت عمل نمیکنه
Docmd.RunSQL("delete from table1 where id=[forms]![form1]![text1
یا
DCount("[id]","[table1]","[id]=[forms]![form]1![text1]")

نمی دونم چرا با forms!form!text1 ارتباط برقرار نمکنه تو کوئریها همینطوره ؟
این طوری بنویس ببین جواب می گیری


Docmd.RunSQL("delete from table1 where id=" & [forms]![form1]![text1])

ykm145
شنبه 12 فروردین 1385, 12:00 عصر
ممنون دوست عزیز
یه اکسس معمولی داریم و یک اکسس پروجکت که برای ایجاد ان در اکسس بعد از new باید project را انتخاب کنید در همین بخش جستجو کنی مطالبی درباره ان نوشته شده
کد فوق در اکسس معمولی مشکلی نداره(عدم مشکل نوشتاری )
در اکسس پروجکت (اکسس +اس کیو ال سرور ) عمل نمیکنه کلا forms!form1!text1 برای ان نامفهوم

MMAASS
شنبه 12 فروردین 1385, 12:25 عصر
سلام دوست عزیز
من الان یه نگاهی به اکسس انداختم و تازه متوجه اکسس پروجکت شدم.
نمی دونم چرا قبلا اونو ندیده بودم :متفکر:
البته اینو هم بگم چون دیگه با اکسس کار نمی کنم به خاطر اینه.
اما از چیزی که گفتین ممنونم.
بالاخره فهمیدم اکسس پروجکت چیه.:اشتباه:

ykm145
شنبه 12 فروردین 1385, 12:46 عصر
ممنون دوست عزیز
من نیز از اکسس بعنوان یک ابزار در کنار شغل اصلی استفاده میکنم والا اگه صرفا برنامه نویسی وتوسعه نرم افزار مد نظرم بودم برنامه چند منظوره از قبیل برنامه نویسی برای اینترنت موبایل بانکهای اطلاعاتی بزرگ و... visual studio 2005 را در دستور کارم قرار میدادم

ykm145
دوشنبه 14 فروردین 1385, 22:21 عصر
دوستان لطفا کمک کنید

ykm145
جمعه 18 فروردین 1385, 09:16 صبح
کسی نمی خواهد جواب بده ؟!!!!

MMAASS
جمعه 18 فروردین 1385, 14:50 عصر
دوست عزیز
اون کدی رو که من براتون گذاشتم دوباره امتحان کردم کامل جواب داد. (در همون اکسس پروجکت)
الان هم این کد ها رو که پایین هست دوباره امتحان کردم بازم در همون اکسس پروجکت جواب می ده.
شما نباید قسمتی رو که از فرم میخونین مستقیما تو رشته بذارین بلکه باید مقدارش رو با رشته قبلی کانکیت کنین (الصاق کنین) من بهتون کد اصلاح شده رو دادم اما گفتین جواب نمی ده ، نمی دونم شما چرا جواب نمی گیرین. کد رو از اینجا کپی کنین و تو برنامه پیست کنین تا ببینین اشکال از کجاست.
در ضمن تابع DCount یه مقدار برگشتی داره که حتما باید یه جایی گذاشته بشه.
به هر حال این کد کاملا جواب میده.

Dim x As Integer
DoCmd.RunSQL ("delete from table1 where id=" & [Forms]![form1]![Text1])
x = DCount("[id]", "[table1]", "[id]=" & [Forms]![form1]![Text1])
اما یادتون باشه مقدار x در این کد همیشه 0 است. چون رکوردها با id ایی که در تکست باکس نوشته شده پاک می شن و بعد تعدادشون محاسبه می شه در صورت لزوم کد رو ویرایش کنین.
اگه بازم حل نشد بگین.
موفق باشین.

ykm145
شنبه 19 فروردین 1385, 00:19 صبح
مرسی دوست عزیز جواب داد من فکر میکردم چون در اکسس معمولی جواب میداد مشکل نوشتاری نداشت در حالیکه که در کد شمامنظور از & یه چیزی دیگه است که اگه لطف کنی بیشتر در مورد ان توضیح بدهی ممنون میشم شاید قسمت بوده که شما بااکسس پروجکت اشنا بشید ومنم من بعد زود قضاوت نکنم
اگر ممکنه این کد با همان روش اصلاح کن (کدها رو در اینجا چجوری تایپ میکنی که علامتهای از این قبیل ],(,",.. سر جای خودش ؟)
INSERT INTO m ( gabzid, radifbank, datcurrent, mablag, fish, jadval, flag )
SELECT Sheet1.CHECKNO, Sheet1.SHEETNO, Sheet1.LDATE, Sheet1.AMOUNT, [CHECKNO] & "#" & [AMOUNT] AS Expr1, "b" AS Expr2, 1 AS Expr3
FROM Sheet1
WHERE (((Sheet1.LDATE) Between [forms]![daramd]![t0] And [forms]![daramd]![t2]));
بسیار از شما دوست عزیز سپاسگذارم

MMAASS
شنبه 19 فروردین 1385, 22:30 عصر
در حالیکه که در کد شمامنظور از & یه چیزی دیگه است که اگه لطف کنی بیشتر در مورد ان توضیح بدهی ممنون میشم
ببینین جناب ykm145 اگه مثلا [forms]![daramd]![t0] رو با "" به صورت یه رشته در بیاری تا اینکه بدون "" بنویسی خیلی فرق داره. بدون "" مقدارش محاسبه می شه اما با "" همون می شه. گیج که نشدین؟ :متفکر:


قسمت بوده که شما بااکسس پروجکت اشنا بشید ومنم من بعد زود قضاوت نکنم

چه قضاوتی؟


کدها رو در اینجا چجوری تایپ میکنی که علامتهای از این قبیل ],(,",.. سر جای خودش ؟

برای نوشتی کد به صورت صحیح ابتدا مد "حالت پیشرفته" رو انتخاب کنین از توی تول باری که اونجا هست می تونین قسمتی رو که برای نوشتن کد است رو انتخاب کنین و کدتون رو اونجا بنویسین این طوری کد به صورت صحیح نوشته می شه و بهم نمی ریزه.



اگر ممکنه این کد با همان روش اصلاح کن

چشم :چشمک:
اینم کد :


str = "INSERT INTO m (gabzid,radifbank,datcurrent,mablag,fish,jadval,fl ag) "
str = str & "SELECT CHECKNO,SHEETNO,LDATE,AMOUNT,[CHECKNO] & '#' & [AMOUNT] AS Expr1, 'b' AS Expr2, 1 AS Expr3 "
str = str & "FROM Sheet1 "
str = str & "WHERE LDATE Between '" & [Forms]![daramd]![t0] & "' And '" & [Forms]![daramd]![t2] & "'"
DoCmd.RunSQL (str)

اگه دیدین جواب نداد بگین تا اصلاح کنم.

ykm145
یک شنبه 20 فروردین 1385, 00:25 صبح
ممنون دوست عزیز
میدانم اگر داخل جفت " قراربدهی عبارت بصورت رشته در نظر گرفته میشه وبدون ان val ولی اخه چرا در اکسس معمولی عمل میکنه اینجا ریزبینتر میشه .....
راستشو بخوای گیج شدم ! شرمنده یه ذره بیشتر توضیح بده
منظورم از زودقضاوت کردن اینکه اول هرپیشنهادی را امتحان کنم سپس درباره عدم درستی ان اظهار نظر کنم
کدها را امتحان میکنم اگه به مشکلی برخوردم دوباره زحمت میدم خدمتون
مخلص شما

MMAASS
یک شنبه 20 فروردین 1385, 20:15 عصر
میدانم اگر داخل جفت " قراربدهی عبارت بصورت رشته در نظر گرفته میشه وبدون ان val ولی اخه چرا در اکسس معمولی عمل میکنه اینجا ریزبینتر میشه .....

در اکسس معمولی جواب میده؟ :متعجب:
این طور نوشتن در هیچ زبانی جواب نمیده. همه زبانها بین گذاشتن "" برای یک عبارت و نذاشتن اون تفاوت می ذارن.
یه مثال می زنم که بهتر متوجه بشین :


Dim str1,str2,str3 as String
str1 = "Salam"
str2 = str1
str3 = "str1" *

در اینجا str2 برابر با salam است ، یعنی مقداری که در str1 است، اما str3 برابر با str1 است نه با مقدار آن. یعنی در خط * دار مقدار str3 برابر با مقدار str1 نیست.
نمی دونم چقد خوب توضیح دادم امیدوارم که این بار متوجه شده باشین.

ykm145
یک شنبه 20 فروردین 1385, 21:24 عصر
ممنون دوست عزیز
پس از منظور تک کوتیشن (')چی ؟
ضمنا کدها error میده حاشیه زرد رنگ به اولین خط انتقال پیدا میکنه البته بصورت تکی بکار بردن "و' برای between .. and جواب میده

MMAASS
یک شنبه 20 فروردین 1385, 21:44 عصر
در بعضی از زبانها رشته ها با سینگل کوتیشن و در بعضی زبانها با دابل کوتیشن نشون داده می شن.
مثلا تو VB و VBA که تو اکسس ازش استفاده می شه رشته ها با دابل کوتیشن و در SQL که ما عبارات SQL رو می نویسیم هم با سینگل و هم با دابل کوتیشن نوشته می شن.
پس در VB (در سطح کدنویسی فرم) حتما باید رشته ها بین " " قرار بگیرن و اگه با ' ' نوشته بشن VB اونا رو به صورت توضیحات در نظر می گیره و اگه دقت کنی اونا رو به رنگ سبز در میاره.
و اون قسمتی که با ' نوشته شده و درون رشته های " " است برای SQL است. یعنی از همه قسمتهای نوشته شده یه عبارت ساخته می شه برای SQL که قسمتهایی که باید برای SQL به عنوان رشته درنظر گرفته بشن در ' ' هستن . ( که البته همون طور که گفتم می تونین اونا رو هم در ' ' و هم در " " بکار ببرین اما به خاطر اینکه بکار بردن "" یه مقدار تو رشته های vb زحمت داره برای مشخص کردن رشته های SQL از ' ' استفاده می کنیم. البته بکار بردن " " در " " یه کمی تسلط می خواد. نه که سخته)