دوستان کد زیر در اکسس پروجکت عمل نمیکنه
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
یا
DCount("[id]","[table1]","[id]=[forms]![form]1![text1]")
نمی دونم چرا با forms!form!text1 ارتباط برقرار نمکنه تو کوئریها همینطوره ؟
این طوری بنویس ببین جواب می گیرینوشته شده توسط ykm145
Docmd.RunSQL("delete from table1 where id=" & [forms]![form1]![text1])
آخرین ویرایش به وسیله MMAASS : شنبه 12 فروردین 1385 در 01:54 صبح
ممنون دوست عزیز
یه اکسس معمولی داریم و یک اکسس پروجکت که برای ایجاد ان در اکسس بعد از new باید project را انتخاب کنید در همین بخش جستجو کنی مطالبی درباره ان نوشته شده
کد فوق در اکسس معمولی مشکلی نداره(عدم مشکل نوشتاری )
در اکسس پروجکت (اکسس +اس کیو ال سرور ) عمل نمیکنه کلا forms!form1!text1 برای ان نامفهوم
سلام دوست عزیز
من الان یه نگاهی به اکسس انداختم و تازه متوجه اکسس پروجکت شدم.
نمی دونم چرا قبلا اونو ندیده بودم
البته اینو هم بگم چون دیگه با اکسس کار نمی کنم به خاطر اینه.
اما از چیزی که گفتین ممنونم.
بالاخره فهمیدم اکسس پروجکت چیه.
ممنون دوست عزیز
من نیز از اکسس بعنوان یک ابزار در کنار شغل اصلی استفاده میکنم والا اگه صرفا برنامه نویسی وتوسعه نرم افزار مد نظرم بودم برنامه چند منظوره از قبیل برنامه نویسی برای اینترنت موبایل بانکهای اطلاعاتی بزرگ و... visual studio 2005 را در دستور کارم قرار میدادم
دوستان لطفا کمک کنید
کسی نمی خواهد جواب بده ؟!!!!
دوست عزیز
اون کدی رو که من براتون گذاشتم دوباره امتحان کردم کامل جواب داد. (در همون اکسس پروجکت)
الان هم این کد ها رو که پایین هست دوباره امتحان کردم بازم در همون اکسس پروجکت جواب می ده.
شما نباید قسمتی رو که از فرم میخونین مستقیما تو رشته بذارین بلکه باید مقدارش رو با رشته قبلی کانکیت کنین (الصاق کنین) من بهتون کد اصلاح شده رو دادم اما گفتین جواب نمی ده ، نمی دونم شما چرا جواب نمی گیرین. کد رو از اینجا کپی کنین و تو برنامه پیست کنین تا ببینین اشکال از کجاست.
در ضمن تابع 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 ایی که در تکست باکس نوشته شده پاک می شن و بعد تعدادشون محاسبه می شه در صورت لزوم کد رو ویرایش کنین.
اگه بازم حل نشد بگین.
موفق باشین.
آخرین ویرایش به وسیله MMAASS : جمعه 18 فروردین 1385 در 14:52 عصر
مرسی دوست عزیز جواب داد من فکر میکردم چون در اکسس معمولی جواب میداد مشکل نوشتاری نداشت در حالیکه که در کد شمامنظور از & یه چیزی دیگه است که اگه لطف کنی بیشتر در مورد ان توضیح بدهی ممنون میشم شاید قسمت بوده که شما بااکسس پروجکت اشنا بشید ومنم من بعد زود قضاوت نکنم
اگر ممکنه این کد با همان روش اصلاح کن (کدها رو در اینجا چجوری تایپ میکنی که علامتهای از این قبیل ],(,",.. سر جای خودش ؟)
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]));
بسیار از شما دوست عزیز سپاسگذارم
آخرین ویرایش به وسیله ykm145 : شنبه 19 فروردین 1385 در 00:24 صبح
ببینین جناب ykm145 اگه مثلا [forms]![daramd]![t0] رو با "" به صورت یه رشته در بیاری تا اینکه بدون "" بنویسی خیلی فرق داره. بدون "" مقدارش محاسبه می شه اما با "" همون می شه. گیج که نشدین؟نوشته شده توسط ykm145
چه قضاوتی؟نوشته شده توسط ykm145
برای نوشتی کد به صورت صحیح ابتدا مد "حالت پیشرفته" رو انتخاب کنین از توی تول باری که اونجا هست می تونین قسمتی رو که برای نوشتن کد است رو انتخاب کنین و کدتون رو اونجا بنویسین این طوری کد به صورت صحیح نوشته می شه و بهم نمی ریزه.نوشته شده توسط ykm145
چشمنوشته شده توسط ykm145
اینم کد :
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)
اگه دیدین جواب نداد بگین تا اصلاح کنم.
ممنون دوست عزیز
میدانم اگر داخل جفت " قراربدهی عبارت بصورت رشته در نظر گرفته میشه وبدون ان val ولی اخه چرا در اکسس معمولی عمل میکنه اینجا ریزبینتر میشه .....
راستشو بخوای گیج شدم ! شرمنده یه ذره بیشتر توضیح بده
منظورم از زودقضاوت کردن اینکه اول هرپیشنهادی را امتحان کنم سپس درباره عدم درستی ان اظهار نظر کنم
کدها را امتحان میکنم اگه به مشکلی برخوردم دوباره زحمت میدم خدمتون
مخلص شما
آخرین ویرایش به وسیله ykm145 : یک شنبه 20 فروردین 1385 در 10:27 صبح
در اکسس معمولی جواب میده؟نوشته شده توسط ykm145
این طور نوشتن در هیچ زبانی جواب نمیده. همه زبانها بین گذاشتن "" برای یک عبارت و نذاشتن اون تفاوت می ذارن.
یه مثال می زنم که بهتر متوجه بشین :
Dim str1,str2,str3 as String
str1 = "Salam"
str2 = str1
str3 = "str1" *
در اینجا str2 برابر با salam است ، یعنی مقداری که در str1 است، اما str3 برابر با str1 است نه با مقدار آن. یعنی در خط * دار مقدار str3 برابر با مقدار str1 نیست.
نمی دونم چقد خوب توضیح دادم امیدوارم که این بار متوجه شده باشین.
ممنون دوست عزیز
پس از منظور تک کوتیشن (')چی ؟
ضمنا کدها error میده حاشیه زرد رنگ به اولین خط انتقال پیدا میکنه البته بصورت تکی بکار بردن "و' برای between .. and جواب میده
در بعضی از زبانها رشته ها با سینگل کوتیشن و در بعضی زبانها با دابل کوتیشن نشون داده می شن.
مثلا تو VB و VBA که تو اکسس ازش استفاده می شه رشته ها با دابل کوتیشن و در SQL که ما عبارات SQL رو می نویسیم هم با سینگل و هم با دابل کوتیشن نوشته می شن.
پس در VB (در سطح کدنویسی فرم) حتما باید رشته ها بین " " قرار بگیرن و اگه با ' ' نوشته بشن VB اونا رو به صورت توضیحات در نظر می گیره و اگه دقت کنی اونا رو به رنگ سبز در میاره.
و اون قسمتی که با ' نوشته شده و درون رشته های " " است برای SQL است. یعنی از همه قسمتهای نوشته شده یه عبارت ساخته می شه برای SQL که قسمتهایی که باید برای SQL به عنوان رشته درنظر گرفته بشن در ' ' هستن . ( که البته همون طور که گفتم می تونین اونا رو هم در ' ' و هم در " " بکار ببرین اما به خاطر اینکه بکار بردن "" یه مقدار تو رشته های vb زحمت داره برای مشخص کردن رشته های SQL از ' ' استفاده می کنیم. البته بکار بردن " " در " " یه کمی تسلط می خواد. نه که سخته)