تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 11

نام تاپيک: کمک در مورد کدنویسی برای Access

  1. #1
    داره خودمونی میشه mr_mashmash's Avatar
    تاريخ عضويت
    Jan 2006
    پست ها
    56

    14 کمک در مورد کدنویسی برای Access

    با سلام دوستان یک مشکلی دارم که هرچه سعی کردم موفق نشدم
    یک بانک اطلاعاتی برای آرشیو اسناد تو اکسس 2007 دارم میخوام کدی بنویسم که فیلد کد بصورت اتوماتیک توسط اطلاعاتی که از بقیه فیلدها بدست میاد پر بشه . فرض کنید کد بصورت xx-yy-z-aaa هست و قسمتهای xx و yy و z از روی فیلدهایی که کاربر وارد می کنند بدست می اید ولی برای پیدا کردن aaa چون شماره مسلسله باید در جدول جستجو کنه تا تعداد قبلیهارو پیدا کنه و یکی بهش اضافه کنه تا بدست بیاد.
    حالا متاسفانه من هرچی سعی می کنم تا با استفاده از recordset و find یا SELECT این کارو بکنم vb6 از کد ایراد میگیره ، لطفا اساتید زحمت بکشید و کد مربوطه رو از اول که connection باید با ADO یا DAO برقرار بشه راهنمایی کنن چون واقعا تو این مورد مبتدی و تازه کار هستم و با مطالعه کتابهای اموزشی هم نتونستم مطلبو خوب درک و اجرا کنم.

  2. #2
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    مشکلی نیست و من کمی خنگ هستم!
    متوجه نشدم شما از x,y,z,a میخواهید x-y-z-a را بدست بیاورید یا برعکس
    شما کدام را دارید و کدارم را میخواهید؟

  3. #3
    اگه نباشه جاش خالی می مونه whisper's Avatar
    تاريخ عضويت
    Dec 2006
    پست ها
    295

    14

    خوب راستش منم مثل شما تازه کار هستم ولی چیزی که به ذهنم می رسه اینه لطفا بقیه دوستان هم نظر بدن شاید هم اشتباه باشه ها!!!!!!!!!!
    به نظر من aaa رو تو یه فیلد جدا تو بانکت ذخیره کن بعدا موقع نمایش کنار اون فیلد ها نمایش بده
    فرض کن اسم فیلد تو بانکت هم aaa هست باید اول بزرگترین رقم رو پیدا کنی!
    sql="Select Max(aaa) as aaa From YourTable"
    ado.recordsource=sql
    ado.refresh
    MaxNumber=ado.recordset.getstring
    MaxNumber=cstr(MaxNumber)
    MaxNumber=MaxNumber+1
    حالا باید این مقدار رو به آخرین فیلدت وارد کنی تو بانک راستش دیگه نمی دونم
    البته اینم چیزی بود که من از سوال شما فهمیدم
    Last edited by whisper; 29-04-2007 at 10:45.

  4. #4
    داره خودمونی میشه mr_mashmash's Avatar
    تاريخ عضويت
    Jan 2006
    پست ها
    56

    پيش فرض

    انگار بد توضیح دادم . ببینید x,y,z و اینارو بی خیال. فرض کنید میخایم تعداد رکوردهای یک جدول رو که توی یک شرط خاص صدق میکنن رو پیدا کنیم . مثلا میخوام ببینم چندتا رکورد هست که فیلد code اونها با "11-12" یا مثلا "123" شروع میشه. از DAO و ADO یه چیزایی میدونم ولی هرکاری میکنم نمیتونم از Findfirst و Findnext و توابع مربوطه درست استفاده کنم. به نظر خودم تو تعریف connection و مقدار دهی مشکل دارم. حالا اگر از دوستان کسی بتونه کدش رو بنویسه کمک بزرگی کرده. متشکرم

  5. #5
    در آغاز فعالیت
    تاريخ عضويت
    Apr 2007
    پست ها
    17

    پيش فرض

    codep=123


    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    dim i as int,counter as int
    with cnn
    . connectionstring=adodc1.connectionstring
    .CursorLocation = adUseClient
    .open
    end with
    Set rst = cnn.Execute("Select code from xxxxxxx;")
    rst.Movenext
    i=0
    While Not rst.EOF
    If rst.Fields("code") Like "codep*" Then
    i=i+1
    end if
    rst.movenext
    wend

    counter=
    i

    فقط شما می بایستی در adodc1 فرمتون نوع بانک و خود بانک رو تعریف کنید.


    اینم مثال دیگه برای پیدا کردن اسامی که با حروفی بین A و D باشند
    Sub LikeX()
    Dim dbs As Database, rst As Recordset

    Set dbs = OpenDatabase("Northwind.mdb")
    Set rst = dbs.OpenRecordset("SELECT LastName," & " FirstName FROM Employees" & " WHERE LastName Like '[A-D]*';")
    rst.MoveLast


    dbs.Close
    End Sub
    Last edited by amin_ir; 30-04-2007 at 03:48.

  6. #6
    در آغاز فعالیت
    تاريخ عضويت
    Apr 2007
    پست ها
    17

    پيش فرض

    [quote=amin_ir;1047942]
    codep=123



    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    dim i as int,counter as int
    with cnn
    . connectionstring=adodc1.connectionstring
    .CursorLocation = adUseClient
    .open
    end with
    Set rst = cnn.Execute("Select code from xxxxxxx;")
    rst.Movenext
    i=0
    While Not rst.EOF
    If rst.Fields("code") Like "codep*" Then
    i=i+1
    end if
    rst.movenext
    wend

    counter=
    i

    فقط شما می بایستی در adodc1 فرمتون نوع بانک و خود بانک رو تعریف کنید.


    اینم مثال دیگه برای پیدا کردن اسامی که با حروفی بین A و D باشند
    Sub LikeX()
    Dim dbs As Database, rst As Recordset

    Set dbs = OpenDatabase("Northwind.mdb")
    Set rst = dbs.OpenRecordset("SELECT LastName," & " FirstName FROM Employees" & " WHERE LastName Like '[A-D]*';")
    rst.MoveLast


    dbs.Close
    end sub

  7. #7
    در آغاز فعالیت
    تاريخ عضويت
    Apr 2007
    پست ها
    17

    پيش فرض

    [quote=amin_ir;1047971][quote=amin_ir;1047942]
    codep=123







    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    dim i as int,counter as int
    with cnn
    . connectionstring=adodc1.connectionstring
    .CursorLocation = adUseClient
    .open
    end with
    Set rst = cnn.Execute("Select code from xxxxxxx;")
    rst.Movenext
    i=0
    While Not rst.EOF
    If rst.Fields("code") Like "codep*" Then
    i=i+1
    end if
    rst.movenext
    wend

    counter=
    i

    فقط شما می بایستی در adodc1 فرمتون نوع بانک و خود بانک رو تعریف کنید.


    اینم مثال دیگه برای پیدا کردن اسامی که با حروفی بین A و D باشند


    Sub LikeX()
    Dim dbs As Database, rst As Recordset

    Set dbs = OpenDatabase("Northwind.mdb")
    Set rst = dbs.OpenRecordset("SELECT LastName," & " FirstName FROM Employees" & " WHERE LastName Like '[A-D]*';")
    rst.MoveLast


    dbs.Close

    end sub

  8. #8
    در آغاز فعالیت
    تاريخ عضويت
    Apr 2007
    پست ها
    17

    پيش فرض

    علت اینکه چند بار این متن ذخیره شده این بود که می خواستم سعی کنم متن بصورت انگلیسی از چپ به راست مرتب بشه که برنامه خوانا بشه که آخرشم نتونستم این کار رو انجام بدم

  9. #9
    داره خودمونی میشه mr_mashmash's Avatar
    تاريخ عضويت
    Jan 2006
    پست ها
    56

    پيش فرض

    امین جان ممنون از توجهت

  10. #10
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    انگار بد توضیح دادم . ببینید x,y,z و اینارو بی خیال. فرض کنید میخایم تعداد رکوردهای یک جدول رو که توی یک شرط خاص صدق میکنن رو پیدا کنیم . مثلا میخوام ببینم چندتا رکورد هست که فیلد code اونها با "11-12" یا مثلا "123" شروع میشه. از DAO و ADO یه چیزایی میدونم ولی هرکاری میکنم نمیتونم از Findfirst و Findnext و توابع مربوطه درست استفاده کنم. به نظر خودم تو تعریف connection و مقدار دهی مشکل دارم. حالا اگر از دوستان کسی بتونه کدش رو بنویسه کمک بزرگی کرده. متشکرم
    سلام
    همین! چه کار وحشتناکی!
    نمیدانم خدا دستورات SQL را برای چه خلق کرده!
    کافیست دستور SQL زیر را به وسیله یک Command یا Connection در ADO اجرا کنید.
    SELECT COUNT(*) FROM tablename WHERE code=123

    البته اگر code یک فیلد String باشد، باید بین جفت کتیشن یا تک کتیشن قرار گیرد.
    فقط میتوانم کدهای VB8 را بگذارم که احتمالاَ به کارتان نمی آید

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •