اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

hyperlink in access


إذهب إلى الإجابة الإجابة بواسطة ابو عبد الله العراقي,

الردود الموصى بها

قام بنشر

السلام عليكم ورحمة الله وبركاته

الأستاذة الافاضل

الـــ Data type  في sql server  للروابط (link) هو text   أما Data type  في الاكسس للروابط فهي ارتباط تشعبي (hyperlink ) ، فعندما قمت بربط الاكسس بــ sql server  وأحد الجداول في sql server    فيها واحد من الحقول هو رابط موقع معين لذلك اخذ نوع البيانات كما اسلفت text   وأيضا في الاكسس اخذ نفس النوع من البيانات أيضا  text  وتم جلب الرابط كما هو sql server  لكن المفروض انه الروابط في الاكسس هي hyperlink  لكي عندما نريد فتح الرابط في نموذج الاكسس فقط نضغط على الرابط اما الان بعد الربط مع sql server  لا استطيع فتح الرابط عند الضغط عليه وانما لكي افتح الرابط لازم اعمل نسخ للرابط ثم اضعه في المتصفح .

الفكرة التي تراودني هي ان اضع رز فتح الرابط في نفس النموذج وهو يقوم بفتح الروابط حسب السجلات لكن كيف ابدأ بصناعة هذا الكود ؟؟؟ او اذا كان هناك حل اخر .

افيدوني وجزاكم الله خيراً

 

قام بنشر (معدل)

وعليكم السلام ورحمة الله وبركاته ,,

في النموذج ، وبعد ان تحدد مربع النص الذي يتم عرض الروابط فيه ، من تبويب Format - تنسيق ، فعل الخيار التالي :-

Untitled.png.cc81b2b6b39da55a9acc2784a8ea1b4a.png

 

لتحصل على النتيجة :-

Untitled1.png.14503437f9ddf46ff51fc45bfd03f7c4.png

إضافة الى ما سبق ، تستطيع إضافة الكود التالي لمربع النص في حدث عند النقر :-

    Dim link As String
    link = Me.Emails.Value
    If link <> "" Then
        Application.FollowHyperlink link
    End If

حيث في مثال ، اسم مربع النص هنا = Emails

تم تعديل بواسطه Foksh
إضافة كود لفتح الرابط
  • Like 3
قام بنشر

السلام عليكم ورحمة الله وبركاته

اخي الكريم ، عاشت ايدك

تم تحويل مربع النص والذي اسمه (lin_address) إلى hyperlink  وا يضأ قمت بإضافة الكود في حدث عند النقر

Dim link As String

On Error GoTo lil:

link = Me.lin_address

If link <> "" Then

Application.FollowHyperlink link

Exit Sub

lil:

MsgBox Err.Number & Err.Description

End If

 

 

وعملت له Debug  ماكو أي مشكلة

لكن عند حفظ النموذج والنقر على الرابط في مربع النص تظهر ثلاث رسائل  خطأ

الأول هي إشعار الأمان لـmicrosoft access   فيها زرين الأول نعم والأخر لا

فاذا ضغطت على   نعم    تظهر رسالة run-time error 16388     ونصها ( لا يمكن أن يتم اتباع الارتباط التشعبي إلى الوجهة ) وإذا قمت بالضغط على   لا   تظهر رسالة run-time error  490      ونصها ( لا يمكن فتح الملف المحدد ) . وكلا الرسالتين يشيران إلى السطر البرمجي  Application.FollowHyperlink link    

علما إني أيضا قد وضعت كود معرفة ارقام الخطأ فهي تظهر نفس الأرقام (16388 ) و ( 490)

ما هي المشكلة ؟؟؟

قام بنشر
7 ساعات مضت, ابو عبد الله العراقي said:

ما هي المشكلة ؟؟؟

انظر المشكلة :-

لاحظ كيف يتم تخزين قيم العنوان الإلكتروني في الجدول داخل الحقل !!!!

Untitled.png.d62c426c66d1f388ad6c0f3c10b5e930.png

وهذا مرفقك لتتوضح الصورة لك !!

hyperlinErr.accdb

قام بنشر

يبدو أن المشكلة مرتبطة إما بإعدادات الأمان في Microsoft Access أو بنوع الرابط المخزن في lin_address. إليك عدة حلول ممكنة:


1. تعديل إعدادات الأمان في Access

عند النقر على الرابط، تظهر لك رسالة الأمان الخاصة بـ Microsoft Access، وهذا قد يمنع تنفيذ الأوامر المتعلقة بـ FollowHyperlink. لتجاوز هذا، جرب الآتي:

  • افتح Access، ثم اذهب إلى File > Options > Trust Center
  • اختر Trust Center Settings
  • انتقل إلى Macro Settings وتأكد من تحديد Enable all macros
  • انتقل إلى Trusted Locations، وأضف المسار الذي يوجد فيه ملف قاعدة البيانات (إذا لم يكن مضافًا بالفعل)

بعد هذه الخطوة، أعد تشغيل Access وجرب مجددًا.


2. التحقق من صحة الرابط المخزن

  • تأكد أن lin_address يحتوي على رابط صالح، مثل:
    • لملف محلي: C:\Users\YourUser\Documents\example.pdf
    • لموقع ويب: https://www.example.com
    • لمجلد مشترك: \\ServerName\SharedFolder\File.pdf

🔹 إذا كان الرابط يحتوي على مسافات، جرب وضعه بين علامات اقتباس:

link = """" & Me.lin_address & """"

3. تعديل الكود لمعالجة الأخطاء المحتملة

استبدل الكود الحالي بهذا الكود المعدل لمعالجة الأخطاء وإضافة طريقة مختلفة لفتح الملفات المحلية:

Dim link As String

On Error GoTo ErrorHandler

link = Me.lin_address

If link <> "" Then
    If Left(link, 4) = "http" Or Left(link, 3) = "www" Then
        ' فتح روابط الويب
        Application.FollowHyperlink link
    ElseIf Dir(link) <> "" Then
        ' فتح ملفات محلية باستخدام Shell
        Shell "explorer.exe " & link, vbNormalFocus
    Else
        MsgBox "الرابط غير صالح أو الملف غير موجود.", vbExclamation, "تنبيه"
    End If
End If

Exit Sub

ErrorHandler:
MsgBox "خطأ رقم: " & Err.Number & vbCrLf & Err.Description, vbCritical, "خطأ"

🔹 ماذا يفعل هذا الكود؟
✔ إذا كان الرابط موقع ويب (http أو www)، يستخدم FollowHyperlink.
✔ إذا كان الرابط ملفًا محليًا، يتم فتحه بـ Explorer بدلًا من FollowHyperlink.
✔ إذا كان الرابط غير صالح، يظهر تنبيه بدلاً من رسالة خطأ.


4. التأكد من صلاحيات الملفات والمجلدات

  • إذا كنت تحاول فتح ملف محلي، تأكد أن الملف موجود في المسار الصحيح.
  • تأكد أن لديك صلاحيات الوصول إلى الملف، خاصة إذا كان على شبكة أو في مجلد محمي.
  • تمت الإجابة
قام بنشر

السلام عليكم ورحمة الله وبركاته

الأستاذة الافاضل Foksh  , kkhalifa1960

شكراً جزيلاً لكما على تواصلكم ومساعدتي في حل هذه المشكلة ، يبدو أن المشكلة في  نسخة الـــoffice   عندي

هو الرابط حاليا يعمل لكن بعد ظهور رسالة الخطأ يعني عند الضغط على اللينك تظهر رسالة الخطأ ثم  يفتح الرابط ، على العموم شكرا لكما مرة أخرى وما قصرتوا ؟

  • Haha 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information