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

نام تاپیک: ذخيره عكس در اكسس

  1. #1

    ذخيره عكس در اكسس

    چطور می تونیم یه عکس را در اکسس ذخیره کنیم
    یعنی داخل فایل mdb قرار بگیرد
    تا بتوانم از آن در فرمها و گزارشها بتوانیم مکررا استفاده کنیم؟
    با تشكر فراوان

  2. #2

    نقل قول: ذخيره عكس در اكسس

    با سلام
    در اين مورد بارها بحث شده است علي ايحال شما در اكسس 2007 يا 2010 يك جدول ساخته و يك فيلد با فرمت Attachment به آن اضافه نماييد.
    در نهايت با افزودن فيلدي از جدول خود به فرم يا گزارشات به ان عكس دسترسي خواهيد داشت.

    با تشكر

  3. #3
    کاربر دائمی آواتار hf.farhadi
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    ابتدای مسیر یادگیری
    پست
    411

    نقل قول: ذخيره عكس در اكسس

    با سلام
    توی 2003 امکانش وجود ندارد ؟

  4. #4
    کاربر دائمی آواتار stabesh
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    مشهد
    پست
    455

    نقل قول: ذخيره عكس در اكسس

    نقل قول نوشته شده توسط hf.farhadi مشاهده تاپیک
    با سلام
    توی 2003 امکانش وجود ندارد ؟
    باید نوع داده OLE باشه

  5. #5

    نقل قول: ذخيره عكس در اكسس

    نقل قول نوشته شده توسط stabesh مشاهده تاپیک
    باید نوع داده OLE باشه
    توضيحات كاملتري نياز دارم؟ اگه امكان داره!
    با تشكر فراوان

  6. #6
    کاربر تازه وارد
    تاریخ عضویت
    دی 1389
    محل زندگی
    يه جاي ايران
    پست
    72

    نقل قول: ذخيره عكس در اكسس

    با سلام خدمت دوستان عزيزم.دوستان خوبم من اين كدهارو براي ذخيره و بازيابي عكس توي پايگاه داده اكسس با وي بي دات نت نوشتم.البته با كمك دوست بسيار خوبم مبتكر كد عزيز.واقعا خيلي به دادم رسيد و ازش خيلي ممنونم.
    خلاصه خدمتتون عرض كنم من اين كدهارو با مصيبت پيدا كردم و تبديلشون كردم.اميدوارم به دردتون بخوره.تست هم شده و كاملا دقيق كار ميكنه.اگه مورد پسند بود 2تا صلوات بفرستين.مرسي


    در ابتدا مفروضات مسئله :
    فرض می کنم در پایگاه داده اكسس دیتابیسی با نام School و جدولی به نام Student دارم که فیلد primary key این جدول با نام stcode و فیلدی که تصویر دانش اموز را نگه داری می کند از نوع image و با نام stimage
    است و در این جدول دانش آموزی با کد 1 اطلاعات آن وارد شده است.

    در ابتدا تابعی به صورت زیر تعریف می کنم :

    اين تابع عكس گرفته شده توسط openfilefolder را به كد باينري تبديل ميكنه:

    PrivateFunction ConvertImageToByte(ByVal ImageLocation AsString) AsByte()
    Dim fs AsNew FileStream(ImageLocation, FileMode.Open, FileAccess.Read)
    Dim br AsNew BinaryReader(fs)
    Dim picture AsByte()
    Dim fInfo AsNew FileInfo(ImageLocation)
    Dim numBytes AsLong = fInfo.Length
    picture = br.ReadBytes(CInt(numBytes))
    Return picture
    EndFunction

    با كد هاي زير عكس گرفته شده توي پايگاه داده اكسس ذخيره ميشه.

    Dim comsave AsNew OleDbCommand()
    comsave.Connection = myconnection
    comsave.CommandText = "Insert Into student Values (@stcode,@stname,@stimage)";
    comsave.Parameters.AddWithValue("@stcode", int.Parse(txtstcode.Text));
    comsave.Parameters.AddWithValue("@stname", txtstname.Text);
    comsave.Parameters.AddWithValue("@stimage", ConvertImageToByte(openImage.FileName));
    comsave.ExecuteNonQuery()

    تابع تبديل كد به عدد:

    Private Function ConvertByteToImage(ByVal ImageByte As Byte()) As Image
    Dim ms As New MemoryStream(ImageByte)
    Dim img As Image
    img = Image.FromStream(ms)
    Return img
    End Function


    این تابع کدهای باینری مربوط به عکس ذخیره شده را گرفته و با استفاده از کلاس MemoryStream آنرا به صورت بافر در می آورد و با استفاده از متد FromStream از کلاس Image بافر را به تصویر تبدیل می کنیم.

    و حالا خواندن عکس از دیتابیس :

    Dim ConnectionString AsString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath & "\image.mdb"
    Dim myconnect AsNew OleDb.OleDbConnection(ConnectionString)
    myconnect.Open()
    Dim comsearch AsNew OleDbCommand()
    comsearch.Connection = myconnect
    comsearch.CommandText = "Select stname,stimage From student Where stcode=" & Integer.Parse(T1.Text)
    Dim reader As OleDbDataReader = comsearch.ExecuteReader()
    reader.Read()
    T1.Text = reader.GetValue(0).ToString()
    PBx.Image = ConvertByteToImage(DirectCast(reader.GetValue(1), Byte()))
    myconnect.Close()

    pic1 نام کنترل pictureBox برای نمایش تصویر است.

    دستورات بالا را در رویداد کلیک یک button بنویسید.

    نکته : قبل از نوشتن دستورات بالا فضای نامی System.IO ، System.Data.Sql و System.Data.SqlClient را به پروژه خود اضافه کنید.

    Imports System.IO
    Imports System.Globalization
    Imports System.Collections.Generic
    Imports System.ComponentModel
    Imports System.Data
    Imports System.Drawing
    Imports System.Text
    Imports System.Windows.Forms
    Imports System.Data.OleDb

  7. #7

    نقل قول: ذخيره عكس در اكسس

    با سلام
    فيلدي با فرمت Attachment جهت نگهداري تصاوير در جدول داريم. فرمي هم داريم كه در آن يك كنترل از نوع image هست كه control source اش خالي است. حال مي خواهيم توسط برنامه نويسي در زبان برنامه نويسي اكسس (نه vb6 و...) تصوير مربوط به هر ركورد را ذخيره يا نمايش دهيم.
    لطفا راهنمائي ام كنيد. با تشكر

  8. #8

    نقل قول: ذخيره عكس در اكسس

    نقل قول نوشته شده توسط bhasoft مشاهده تاپیک
    با سلام خدمت دوستان عزيزم.دوستان خوبم من اين كدهارو براي ذخيره و بازيابي عكس توي پايگاه داده اكسس با وي بي دات نت نوشتم.البته با كمك دوست بسيار خوبم مبتكر كد عزيز.واقعا خيلي به دادم رسيد و ازش خيلي ممنونم.
    خلاصه خدمتتون عرض كنم من اين كدهارو با مصيبت پيدا كردم و تبديلشون كردم.اميدوارم به دردتون بخوره.تست هم شده و كاملا دقيق كار ميكنه.اگه مورد پسند بود 2تا صلوات بفرستين.مرسي


    در ابتدا مفروضات مسئله :
    فرض می کنم در پایگاه داده اكسس دیتابیسی با نام School و جدولی به نام Student دارم که فیلد primary key این جدول با نام stcode و فیلدی که تصویر دانش اموز را نگه داری می کند از نوع image و با نام stimage
    است و در این جدول دانش آموزی با کد 1 اطلاعات آن وارد شده است.

    در ابتدا تابعی به صورت زیر تعریف می کنم :

    اين تابع عكس گرفته شده توسط openfilefolder را به كد باينري تبديل ميكنه:

    PrivateFunction ConvertImageToByte(ByVal ImageLocation AsString) AsByte()
    Dim fs AsNew FileStream(ImageLocation, FileMode.Open, FileAccess.Read)
    Dim br AsNew BinaryReader(fs)
    Dim picture AsByte()
    Dim fInfo AsNew FileInfo(ImageLocation)
    Dim numBytes AsLong = fInfo.Length
    picture = br.ReadBytes(CInt(numBytes))
    Return picture
    EndFunction

    با كد هاي زير عكس گرفته شده توي پايگاه داده اكسس ذخيره ميشه.

    Dim comsave AsNew OleDbCommand()
    comsave.Connection = myconnection
    comsave.CommandText = "Insert Into student Values (@stcode,@stname,@stimage)";
    comsave.Parameters.AddWithValue("@stcode", int.Parse(txtstcode.Text));
    comsave.Parameters.AddWithValue("@stname", txtstname.Text);
    comsave.Parameters.AddWithValue("@stimage", ConvertImageToByte(openImage.FileName));
    comsave.ExecuteNonQuery()

    تابع تبديل كد به عدد:

    Private Function ConvertByteToImage(ByVal ImageByte As Byte()) As Image
    Dim ms As New MemoryStream(ImageByte)
    Dim img As Image
    img = Image.FromStream(ms)
    Return img
    End Function


    این تابع کدهای باینری مربوط به عکس ذخیره شده را گرفته و با استفاده از کلاس MemoryStream آنرا به صورت بافر در می آورد و با استفاده از متد FromStream از کلاس Image بافر را به تصویر تبدیل می کنیم.

    و حالا خواندن عکس از دیتابیس :

    Dim ConnectionString AsString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath & "\image.mdb"
    Dim myconnect AsNew OleDb.OleDbConnection(ConnectionString)
    myconnect.Open()
    Dim comsearch AsNew OleDbCommand()
    comsearch.Connection = myconnect
    comsearch.CommandText = "Select stname,stimage From student Where stcode=" & Integer.Parse(T1.Text)
    Dim reader As OleDbDataReader = comsearch.ExecuteReader()
    reader.Read()
    T1.Text = reader.GetValue(0).ToString()
    PBx.Image = ConvertByteToImage(DirectCast(reader.GetValue(1), Byte()))
    myconnect.Close()

    pic1 نام کنترل pictureBox برای نمایش تصویر است.

    دستورات بالا را در رویداد کلیک یک button بنویسید.

    نکته : قبل از نوشتن دستورات بالا فضای نامی System.IO ، System.Data.Sql و System.Data.SqlClient را به پروژه خود اضافه کنید.

    Imports System.IO
    Imports System.Globalization
    Imports System.Collections.Generic
    Imports System.ComponentModel
    Imports System.Data
    Imports System.Drawing
    Imports System.Text
    Imports System.Windows.Forms
    Imports System.Data.OleDb
    ضمن تشكر لطفا يك فايل نمونه را پيوست فرماييد.
    با تشكر فراوان

  9. #9

    نقل قول: ذخيره عكس در اكسس

    نقل قول نوشته شده توسط s.alipour مشاهده تاپیک
    با سلام
    فيلدي با فرمت Attachment جهت نگهداري تصاوير در جدول داريم. فرمي هم داريم كه در آن يك كنترل از نوع image هست كه control source اش خالي است. حال مي خواهيم توسط برنامه نويسي در زبان برنامه نويسي اكسس (نه vb6 و...) تصوير مربوط به هر ركورد را ذخيره يا نمايش دهيم.
    لطفا راهنمائي ام كنيد. با تشكر
    با سلام
    اگر فیلد شما فرمت Attachment دارد پس اکسس 2007 کار میکنید که برای ذخیره عکس کافیست در فرم خود از طریق تولبار ایکون Attachment را در داخل فرم خود قرار دهید و ان را به فیلد مربوطه در table خود ارتباط دهید
    برنامه را اجرا کنید

  10. #10

    نقل قول: ذخيره عكس در اكسس

    بله با Attachment خیلی راحت تر است .
    من از شما بابت این توضیحات تشکر دارم

  11. #11

    نقل قول: ذخيره عكس در اكسس

    توی لینک زیر اموزش کاملی در مورد نحوه ذخیره تصاویر داده شده

    http://officebaz.ir/course/%d8%b1%d9...-%d8%af%d8%b1/

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

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

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