نمایش نتایج 1 تا 9 از 9

نام تاپیک: Merge کردن یک فیلد از Quey

  1. #1
    کاربر دائمی آواتار Milad_ATM
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    بوشهر
    پست
    185

    Merge کردن یک فیلد از Quey

    سلام
    چطور میشه یک ستون از یک Quey رو با هم ادغام کرد و با یک کاراکتر از هم جدااشون کرد؟
    مثال :
    555,450,300,500
    اینها از یک ستون با هم مرج شده و با "،" از هم جدا شدن!
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    پست
    797

    نقل قول: Merge کردن یک فیلد از Quey

    نقل قول نوشته شده توسط Milad_ATM مشاهده تاپیک
    سلام
    چطور میشه یک ستون از یک Quey رو با هم ادغام کرد و با یک کاراکتر از هم جدااشون کرد؟
    مثال :
    555,450,300,500
    اینها از یک ستون با هم مرج شده و با "،" از هم جدا شدن!

    سلام
    برای اینکار از یک تابع در قسمت ماژول استفاده کردم

    نمونه اصلاح شده خودت رو ببین !
    فایل های ضمیمه فایل های ضمیمه

  3. #3
    کاربر دائمی آواتار Milad_ATM
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    بوشهر
    پست
    185

    نقل قول: Merge کردن یک فیلد از Quey

    ممنون دوست عزیز کارتون فوق العاده بود
    فقط این شرط رو به هر روشی برمیدارم با Error مواجه میشم
    Set MyRS = MyDB.OpenRecordset("Select * From Preservation where([Number]>500)", dbOpenSnapshot)
    نیازی به این نیست

  4. #4
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    پست
    797

    نقل قول: Merge کردن یک فیلد از Quey

    نقل قول نوشته شده توسط Milad_ATM مشاهده تاپیک
    ممنون دوست عزیز کارتون فوق العاده بود
    فقط این شرط رو به هر روشی برمیدارم با Error مواجه میشم
    Set MyRS = MyDB.OpenRecordset("Select * From Preservation where([Number]>500)", dbOpenSnapshot)
    نیازی به این نیست
    سلام
    خواهش می کنم
    در کد فوق نام table1 حذف شده

    Set MyRS = MyDB.OpenRecordset("Select * From Table1 Preservation", dbOpenSnapshot)


  5. #5
    کاربر دائمی آواتار Milad_ATM
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    بوشهر
    پست
    185

    نقل قول: Merge کردن یک فیلد از Quey

    من کد رو به این شکل تغییر دادم:

        Public Function fAppendDogNames(ID As Integer) As String    Dim intNoOfDogs As Integer, strNames As String
    intNoOfDogs = DCount("*", "Preservation", "[ID]=" & ID)
    If intNoOfDogs = 1 Then
    fAppendDogNames = DLookup("[ReportNo]", "Preservation", "[ID]=" & ID)
    Exit Function
    Else
    Dim MyDB As DAO.Database, MyRS As DAO.Recordset
    Set MyDB = CurrentDb()
    Set MyRS = MyDB.OpenRecordset("Select * From Preservation", dbOpenSnapshot)
    MyRS.MoveFirst
    Do While Not MyRS.EOF
    If Len(strNames) = 0 Then
    strNames = MyRS![ReportNo]
    Else
    strNames = strNames & "," & MyRS![ReportNo]
    End If
    MyRS.MoveNext
    Loop
    fAppendDogNames = strNames
    End If

    MyRS.Close
    Set MyRS = Nothing




    و در Query به این صورت ماژول رو استفاده کردم :
    XXX: fAppendDogNames([ReportNo])


    ولی در نهایت این خروجی زو از Query می گیرم :
    1.JPG

  6. #6
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    پست
    797

    نقل قول: Merge کردن یک فیلد از Quey

    نقل قول نوشته شده توسط Milad_ATM مشاهده تاپیک
    من کد رو به این شکل تغییر دادم:

        Public Function fAppendDogNames(ID As Integer) As String    Dim intNoOfDogs As Integer, strNames As String
    intNoOfDogs = DCount("*", "Preservation", "[ID]=" & ID)
    If intNoOfDogs = 1 Then
    fAppendDogNames = DLookup("[ReportNo]", "Preservation", "[ID]=" & ID)
    Exit Function
    Else
    Dim MyDB As DAO.Database, MyRS As DAO.Recordset
    Set MyDB = CurrentDb()
    Set MyRS = MyDB.OpenRecordset("Select * From Preservation", dbOpenSnapshot)
    MyRS.MoveFirst
    Do While Not MyRS.EOF
    If Len(strNames) = 0 Then
    strNames = MyRS![ReportNo]
    Else
    strNames = strNames & "," & MyRS![ReportNo]
    End If
    MyRS.MoveNext
    Loop
    fAppendDogNames = strNames
    End If

    MyRS.Close
    Set MyRS = Nothing




    و در Query به این صورت ماژول رو استفاده کردم :
    XXX: fAppendDogNames([ReportNo])


    ولی در نهایت این خروجی زو از Query می گیرم :

    سلام
    خب علتش آرگومان تابع میباشد که از نوع Integer قرار داده بودم ، چون فکر کردم اون ستونی که قراره بصورت سطری و پشت سرهم نوشه شود از نوع عدد است و حالا بلحاظ اینکه این ستون از نوع استرینگ است این آرگومان باید به String تبدیل شود

    حالت اول از نوع Integer

    Public Function CmdMerge(MrgReportNo As Integer ) As String



    حالت دوم از نوع String

    Public Function CmdMerge(MrgReportNo As String) As String

    حالت سوم : حذف نوع متغیر تابع

    Public Function CmdMerge(MrgReportNo)


    نمونه اصلاح شده جدید در حالت سوم که نسبت به نوع فیلد درجدول حساسیت نشون نمیده
    موفق باشی
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله eb_1345 : پنج شنبه 13 شهریور 1399 در 13:08 عصر

  7. #7
    کاربر دائمی آواتار Milad_ATM
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    بوشهر
    پست
    185

    نقل قول: Merge کردن یک فیلد از Quey

    یک موردی که پیش میاد این هست که شماره های تکراری رو هر چند بار که باشن نشون میده و باعث کند شدن و بهم ریختگی میشه
    میشه هر شماره رو فقط یک بار نشون بده
    و اینکه اگر در Query شرطی بزارم روی شامل این ماژول هم میشه یا خیر؟
    مثلاً اگر
    Between [Forms]![PreservationReportPopUp]![FromDate] And [Forms]![PreservationReportPopUp]![ToDate]

    فیلد تاریخم رو بین دو تاریخ قرار بدم و در همین Query از این ماژول استفاده کنم Report No هایی که Merge میشن در همین بازه قرار دارند؟

  8. #8
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    پست
    797

    نقل قول: Merge کردن یک فیلد از Quey

    نقل قول نوشته شده توسط Milad_ATM مشاهده تاپیک
    یک موردی که پیش میاد این هست که شماره های تکراری رو هر چند بار که باشن نشون میده و باعث کند شدن و بهم ریختگی میشه
    میشه هر شماره رو فقط یک بار نشون بده
    اگر منظورت از شماره تکراری همون ReportNo است نه ID میتوانی در ماژول بعد از Select کلید واژه DISTINCT را اضافه نمائید
    بصورت زیر :

    Set MyRS = MyDB.OpenRecordset("Select DISTINCT ReportNo From Preservation", dbOpenSnapshot)



    نقل قول نوشته شده توسط Milad_ATM;2434170
    و اینکه اگر در Query شرطی بزارم روی شامل این ماژول هم میشه یا خیر؟
    مثلاً اگر
    [CODE
    Between [Forms]![PreservationReportPopUp]![FromDate] And [Forms]![PreservationReportPopUp]![ToDate][/CODE]
    فیلد تاریخم رو بین دو تاریخ قرار بدم و در همین Query از این ماژول استفاده کنم Report No هایی که Merge میشن در همین بازه قرار دارند؟
    تمام شرطهائی که در کوئری پیاده می کنید باید در قسمت ماژول قید شود
    مثلاً شرط گذاشته اید که فیلد ID بزرگتر از 2 باشد
    بصورت زیز:


    CountID = DCount("*", "Preservation", "[ID]>2")
    Dim MyDB As DAO.Database, MyRS As DAO.Recordset
    Set MyDB = CurrentDb()
    Set MyRS = MyDB.OpenRecordset("Select DISTINCT ReportNo From Preservation WHERE(id >2)", dbOpenSnapshot)


  9. #9
    کاربر دائمی آواتار Milad_ATM
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    بوشهر
    پست
    185

    نقل قول: Merge کردن یک فیلد از Quey

    دوستان این شرط رو میتونید راهنمایی کنید چطوری به کد بالا اضافه کنم
    من این شرط رو در Query نوشتم و میخوام به این کد اضافه کنم
    Between [Forms]![PreservationReportPopUp]![FromDate] And [Forms]![PreservationReportPopUp]![ToDate]
    آخرین ویرایش به وسیله Milad_ATM : دوشنبه 17 شهریور 1399 در 16:32 عصر

تاپیک های مشابه

  1. Merge کردن فایل‌های Dll در فایل Exe
    نوشته شده توسط Alghoochi در بخش VB.NET
    پاسخ: 4
    آخرین پست: چهارشنبه 18 آبان 1390, 12:42 عصر
  2. سوال: merge كردن چند فايل wav ؟
    نوشته شده توسط Afshin160 در بخش C#‎‎
    پاسخ: 7
    آخرین پست: شنبه 28 فروردین 1389, 16:09 عصر
  3. سوال: merge کردن دو فایل pdf به یک فایل
    نوشته شده توسط masoodp666 در بخش گزارش سازی با Crystal Report
    پاسخ: 0
    آخرین پست: پنج شنبه 26 دی 1387, 12:59 عصر
  4. Merge ocx
    نوشته شده توسط HjSoft در بخش برنامه نویسی در 6 VB
    پاسخ: 14
    آخرین پست: یک شنبه 30 دی 1386, 11:54 صبح
  5. merge کردن هزار جدول
    نوشته شده توسط farnaz2003 در بخش Access
    پاسخ: 2
    آخرین پست: دوشنبه 14 آبان 1386, 13:05 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •