کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

به اشتراک گذاری اطلاعات کسب شده در اکسس از سایت آفیس و سایت های تخصصی خارجی
کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

به اشتراک گذاری اطلاعات کسب شده در اکسس از سایت آفیس و سایت های تخصصی خارجی

فرق بین ویژگیهای Text و Value همچنین استفاده از تگ های HTML



-ویژگی Text محتویات جاری کنترل است.

-ویژگی Value مقدار ذخیره شده کنترل تکست باکس است.

-ویژگی Value تا زمانیکه کنترل فوکس دارد همیشه در جریان است .

-ویژگی Value ، ویژگی Default کنترل را تنظیم یا باز می گرداند، که این ویژگی زمانیکه به صراحت نام ویژگی خاصی را مشخص نکردید ، فرض می شود.


ویژگی Value مشابه ویژگی DefaultValue که مقداری را مشخص می کند که یک ویژگی در هنگام ایجاد رکورد جدید به آن اختصاص می یابد نیست



ویژگی TextFormat را برای مشخص کردن اینکه در تکست باکس بتوانید از بعضی تگ های HTML استفاده کنید یا خیر استفاده میشود چنانچه >> به 1  تنظیم شود . بطور مثال میخواهید Bold یا Color بودن را در جاهایی از متن به دلخواه تغییر دهید.












ویژگی AppIcon یا AppTitle در اکسس


ویژگی AppIcon یک عبارت رشته ای که نام یک فایل Bitmap یا Icon است. البته شامل مسیر !!!

راحت ترین راه برای تنظیم این ویژگی استفاده از انتخاب Application Icon در جعبه دیالوگ Access Options است.همچنین می توان با استفاده از ماکرو یا ویژوال بیسیک نیز آنرا تنظیم نمود.


برای تنظیم ویژگی AppIcon با استفاده از ماکرو یا ویژوال بیسیک می بایست یا اول در آن پنجره یادشده یکبار تنظیم نمود یا این ویژگی را طبق راه ها( ی )زیر ایجاد کرد :

در یک پایگاه داده اکسس ، می توان آن را با استفاده از مِتُد CreateProperty و الحاق کردنش به مجموعه پراپرتیزهای شئ آبجکت اضافه نمود.


نوشتاری این متد با آرگومان ها که همه Optional هستند نه اجباری و لازم


expression .CreateProperty(NameTypeValueDDL)


Type :

dbBoolean

dbText

dbLong

dbByte

Ex:Name="AppIcon";Type=dbText;Value=PathOfIconOrBitmap


خطای ۳۲۷۰ بدین معنی است که ویژگی پیدا نشد.

  • Error 3270 means that the property was not found.

بالا ساختن ویژگی بود و بعد استفاده از مِتُد زیر : 

اضافه کردن ویژگی جدید به مجموعه یا کالکشن پراپرتیزها

expression .Append(Object)




با استفاده از پیام ویندوزی هم که به پنجره فرم می شود ارسال نمود می توان آیکون را ضمیمه کرد.

تابع SendMessageA و ارسال پیام ویندوزی WM_SETICON

wParam :

ICON_BIG=1

ICON_SMALL=0

lParam:

Null





























SetWindowTextA  hWndAccessApp,TitleText





مخفی کردن پنجره اصلی اکسس



advanced-installer


در رویداد بارگزاری فرم با نام لاگین می توان تابعی نوشت که از تابع ShowWondow ویندوزی  و قرار دادن مقدار صفر در آرگومان دوم آن برای مخفی کردن پنجره استفاده کند.


Private Sub Form_Load() On Error GoTo Err_Handler SetAccessWindow (SW_SHOWMINIMIZED) DoCmd.Restore Exit_Handler: Exit Sub Err_Handler: MsgBox "Error " & Err.Number & " in Form_Load procedure : " & Err.description Resume Exit_Handler End Sub

SetAccessWindow یک تابع نوشته شده توسط فرد است مثل 

SetAccessWindow(frm As Form)

که درون آن از  تابع ShowWindow  ویندوزی برای مخفی کردن پنجره چه فرم مربوطه چه خود اپلیکیشن  استفاده شده.


یک تابع که جوابش Boolean است ازکتابخانه User32 که اظهار آن در ویندوز ۶۴ بیتی با ۳۲ بیتی فرق میکند


BOOL ShowWindow( [in] HWND hWnd, [in] int nCmdShow );



*اما زمان  کلیک کردن روی TaskBar پنجره اصلی نمایان میشود


استفاده از تابع SetWindowalongPtrA و بعد استفاده از SW_HIDE برای اپلیکیشن اکسس و سپس SW_SHOW برای فرم لاگین مورد نظر 



استفاده از تابع برای تغییر Attribute پنجره مشخص شده


LONG_PTR SetWindowLongPtrA( [in] HWND hWnd, [in] int nIndex, [in] LONG_PTR dwNewLong );


nIndex :

GWL_EXSTYLE=-20

WS_EX_APPWINDOW=&H40000 


زمانیکه پنجره یا Window قابل رویت است یک پنجره top-level را داخل نوار وظیفه یا TaskBar می گنجاند.


LONG_PTR GetWindowLongPtrA( [in] HWND hWnd, [in] int nIndex );


خلاصه باید Style  را گرفت و موقتاً تغییر داد


lStyle=GetWindowLongPtrA(Login.hWnd,GWL_EXSTYLE) Or WS_EX_APPWINDOW


lStyle در آرگومان dwNewLong قرار داده می شود



می توان در پکیج نصبی از  create-desktop-shortcut استفاده کرد برای معرفی  Icon مورد نظر.  

ویژگی WindowStyle >>>  در Style ، فرضا مقدار ۱ : فعال و نمایش کردن پنجره . اگر پنجره مینیمایز یا ماکزیمایز باشد ، دستگاه آن را به سایز و موقعیت اصلی خودش باز می گرداند.



اگر خواندن متن بالا مفید واقع شد لطفا در نظرسنجی حتی خیلی کم هم شرکت نمائید 


















خواندن یک فایل باینری با عبارت Open در اکسل




Sub Temp()
Dim intFileNum%, bytTemp As Byte, intCellRow%
intFileNum = FreeFile
intCellRow = 0
Open "C:\temp.bin" For Binary Access Read As intFileNum
Do While Not EOF(intFileNum)
intCellRow = intCellRow + 1
Get intFileNum, , bytTemp 

Cells(intCellRow, 1) = bytTemp

Loop 
Close intFileNum 
End Sub


نوشتاری 

Open pathname For mode [ Access access ] [ lock ] As [ # ] filenumber [ Len = reclength ]


mode: ( اجباری )

Append,Binary,Input,OutPut Or Random

Default : Random


access : ( اختیاری )

ReadWrite, or Read Write.


filenumber: ( اجباری )

in range 1 to 511

use FreeFile function : برای بدست آورن شماره فایل موجود بعدی




در حالت های Binary ، Input و Random یک فایل را می توان با استفاده از شماره فایل متفاوت بدون بستن باز نمود. در حالت های Append و OutPut می بایست قبل از باز کردن آن با شماره فایل متفاوت ، آنرا بست.


عبارت یا دستور Get در Vba : ( خواندن داخل یک متغیر )

Reads data from an open disk file into a Variable.
Get [ # ] filenumber, [ recnumber ], varname


عبارت یا دستور Put در Vba : ( نوشتن )

Writes data from a Variable to a disk file.

Put [ # ] filenumber, [ recnumber ], varname


عبارت یا دستور Input در Vba : ( خواندن داده )


Reads data from an open sequential file and assigns the data to Variables

Input #filenumber, varlist



عبارت یا دستور Print در Vba : ( نوشتن در فایل )

Writes display-formatted data to a sequential file.

Print #filenumber, [ outputlist ]







OpenPort


Open "COM4:2400,N,8,1" For Binary Access Read Write As #1
cmnd$ = cmnd$ + Chr(13)
Put #1, , cmnd$
answer = ""
char = Input(1, #1)
While (char <> Chr(13))
If (char > Chr(31)) Then
answer = answer + char
End If
char = Input(1, #1) 'گرفتن کاراکتربعدی
Wend
Close #1



دهه سوم اردیبهشت ۱۴۰۲ :

فلاحتی امام جمعه رشت با انتقاد از حجاب برخی حاضران در مراسم گفت: سایت ها فردا می زنند نماینده ولی فقیه در جلسه ای شرکت کرد که حجاب را رعایت نکردند. من از همه زنان و دخترانی که این جا حجاب را رعایت نکرده‌اند، بیزارم...














شئ Drive و کالکشن Drives در فهرست گیری درایوهای موجود



دسترسی به ویژگیهای یک Disk Drive خاص یا اشتراک شبکه  رافراهم میسازد . دارای کالکشن Drives  و ویژگیهایی مثل DriveLetter VolumeName ، TotalSize ، FreeSpace  یاSerialNumber ( نه هارد )  و ... است


اسم متغیر Fso که با Set همراه میشود

CreateObject("Scripting.FileSystemObject")

For Each D in Fso.Drives

Debug.Print D.DriveLetter & ";"  & _

       D.SerialNumber & ";" & _

       D.TotalSize

Next


مِتُد GetDrive :

Declare A Variable Like fso

GetDrive("D:")

.DriveLetter

.TotalSize



The drivespec argument can be a drive letter (c), a drive letter with a colon appended (c:), a drive letter with a colon and path separator appended (c:), or any network share specification (\computer2\share1)











احمد شاه قاجار، آخرین شاه سلسله قاجار نهم اسفند ۱۳۰۸ درست ۴ سال و ۴ ماه پس از خلع قاجاریه از سلطنت ایران در ۳۲ سالگی در پاریس و در تبعید درگذشت. وی دچار اضافه وزن و بیماری کلیوی بود. احمدشاه را در تیرماه ۱۲۸۸ در ۱۲ سالگی برجای پدرش نشانده بودند. او در سال ۱۳۰۲ سه سال پس از کودتای رضا خان، از سلطنت خلع شده بود. احمد شاه به اراده خود به اروپا رفت، اما دیگر به او اجازه بازگشت داده نشد.










بررسی وجود یک فولدر با استفاده از شئ Scripting.FileSystemObjecf



در صورتیکه پوشه مورد نظر موجود باشد True و در غیر اینصورت False را بر میگرداند


نوشتاری این متد :

Object.FolderExists(filespec)




Bound Control چیست




کنترل محدود


یک کنترل آگاه از داده یا Data-aware می تواند دسترسی به یک فیلد یا فیلدهای خاص در پایگاه داده را از طریق یک کنترل داده فراهم کند. این کنترل معمولاً از طریق ویژگی های DataSource و DataField به یک کنترل داده متصل می شود. هنگامی که یک کنترل داده از یک رکورد به رکورد دیگر منتقل می شود، همه کنترل های محدود متصل به کنترل داده برای نمایش داده ها از فیلدهای رکورد فعلی تغییر می کنند. هنگامی که کاربران داده ها را در یک کنترل محدود تغییر می دهند و سپس به یک رکورد دیگر منتقل می شوند، تغییرات به طور خودکار در پایگاه داده ذخیره می شوند.





مِتُد GetFile از شئ FileSystemObject



این متد یک شئ File مرتبط به فایل با یک مسیر مشخص را بازمی گرداند


 در صورتیکه فایل در مسیر مشخص شده نباشد خطا ایجاد می کند.


شئ File دسترسی به تمام ویژگیهای یک فایل را فراهم می سازد


GetFolder>>>>>File Object >>>> Access to all properties


شئ File شامل کالکشن Files ( برای بازیابی فایل های موجود در یک پوشه ) ، چند متد مثل  Move ، Delete ،  Copy ،  یا OpenAsTextStream ( برای دسترسی به فایل : جهت خواندن یا نوشتن ) و چندین ویژگی مثل DateCreated ، Name Path یا ShortPath و Size و ... است


برای شمارش تعداد فایل های موجود در پوشه خاص :

CreateObject Function:

Creates and returns a reference to an ActiveX object.


-ایجاد شئ Scripting.FileSystemOject با تابع CrateObject و اعلان آن با یک متغیر و استفاده از Set

.GetFolder(folderSpecified).Files.Count






















شمارش زیر فولدرها با استفاده از شئ FileSystemObject



1-ساخت شئ و تنظیم آن ( با Set ) به متغیری جهت استفاده از مجموعه ها و متدهای آنها

CreateObject :Scripting.FileSystemObject

متد GetFolder شئ Folder مرتبط با پوشه با مسیر مشخص را برمیگرداند و می توان به ویژگیهای آن دسترسی پیدا کرد.

GetFolder(PathSpecified)

شئ Folder طبق گفته بالا دسترسی به تمام ویژگیهای یک پوشه را فراهم می سازد.





این شئ فولدر دو تا کالکشن داره یکی کالکشن Files و دیگری SubFolders که مجموعه ای از تمام اشیاء پوشه موجود در یک شئ Folder است



حالا به SubFolders احتیاج داریم که بعد با Count ، تعداد را بگیریم



GetFolder(psPath).SubFolders.Count



هر فولدری می تواند یک زیرپوشه باشد . می توان با لوپ زدن یا ارسال آن به خود تابع تعداد کل پوشه ها در مسیر مشخص را گرفت. مثلا فولدر MyPath دارای چند زیرپوشه است و زیر پوشه images ممکن است خودش دارای پوشه هایی باشد که برای آن زیرپوشه و خودش برای آنها فولدر محسوب میشود.




درصورت مفید بودن لطفا در نظرسنجی "حتی خیلی کم" شرکت نمائید










عبارت Type در ماژول


دستور Type فقط در سطح Module قابل استفاده است . پس از اینکه یک نوع تعریف شده توسط کاربر را با استفاده از Type اعلام کردید ، *می توانید متغیری از آن نوع را در هر جایی از محدوده  اعلان اعلام کرد.از Dim ، Private ، Public ، Redim یا Static برای اعلام یک متغیر از نوع تعریف شده توسط کاربر استفاده کنید


*User-Defined یعنی تعریف شده از طرف کاربر


مثال : 


Type EmployeeRecord    ' Create user-defined type.
    ID As Integer    ' Define elements of data type.
    Name As String * 20
    Address As String * 30
    Phone As Long
    HireDate As Date

End Type 

Sub CreateRecord() 

*طبق گفته بالا اظهار کنید

    Dim MyRecord As EmployeeRecord    ' Declare variable. 
    MyRecord.ID = 12003    ' Assign a value to an element. 
End Sub


مثال دیگر برای جستجوی فایل توسط متدهای کالکشنFolder


Type Search
lookin As String
Filename As String
FoundFiles() As Variant
FileCount As Long
End Type 

در تابع تعریف شده : 
اول اعلان توسط یک متغیر
Dim SearchResults As Search
With SearchResults
.lookin = "C:\Temp"
.Filename = "*.mdb" 
.FileCount = 0
.
.
End With










تابع API دانلود فایل از آدرس اینترنتی و یافتن فایل در پوشه خاص




Downloads bits from the Internet and saves them to a file.


Library : Urlmon.lib

DLL        : Urlmon.Dll



HRESULT URLDownloadToFile(

             LPUNKNOWN            pCaller,

             LPCTSTR              szURL,

             LPCTSTR              szFileName,

  _Reserved_ DWORD                dwReserved,

             LPBINDSTATUSCALLBACK lpfnCB

);

برای نوشتن تابع بالا برای ویندوز ۶۴ بیت باید PtrSafe را در  نیز در آن بکار ببرید


-Pcaller : را Null یا Zero انتخاب کنید

-szURL : به یک مقدار رشته ای که حاوی URL برای دانلود است اشاره می کند ( منظور آدرس سایت و پیج مربوطه ) اگر معتبر نباشد INET_E_DOWNLOAD_FAILURE را بر می گرداند البته ایندکسش را

-szFileName  : یک مقدار رشته ای حاوی نام یا مسیر کامل ، اگر حاوی مسیر باشد دایرکتوری مقصد یا هدف می بایست از قبل موجود باشد

-dwReserved : رزورشده است و بایستی صفر باشد.

-lpfnCb : عملیات دانلود می تواند کنسل شود توسط برگشت E_ABORT از هر تابع فراخوانی.این پارامتر می تواند به NULL تنظیم شود 





Windows Internet Explorer 8. URLDownloadToFile does not support IBindStatusCallbackEx and cannot be used to download files over 4 gigabytes (GB) in size. Refer instead to IBindStatusCallbackEx::GetBindInfoEx for a code example.



Sub download_multiple_photos()
dlpath = "C:\DownloadedPics\"
For i = 2 To 7
imgsrc = Cells(i, 2)
imgname = Cells(i, 1)
URLDownloadToFile 0, imgsrc, dlpath & imgname & ".jpg", 0, 0
Next i
End Sub



result = URLDownloadToFile(0, url, filePath, 0, 0)
If result = 0 Then
MsgBox ("Succeeded")
Else
MsgBox ("failed ")
End If



برای چک کردن فایل در مسیر خاص 

Syntax   

نوشتاری تابع

Dir[(pathname [, attributes)]

Dir("         " ,VbDirectory)



If Len(Dir("c:\example.mdb")) = 0 Then 

Msgbox "This file does NOT exist." 

Else 

Msgbox "This file does exist." 

End If


از مِتُد FileExists از شی FileSystemObject هم می توان استفاده کرد 


True را بر می گرداند اگر فایل مشخص شده موجود باشد و False را در زمان نبودن موضوع این است بودن یا نبودن !

Returns True if a specified file exists; False if it does not.

Syntax

نوشتاری متد به شرح ذیل است 

object.FileExists (filespec)

این متد از ۳ بخش تشکیل شده

The FileExists method syntax has these parts:

PartDescription
objectRequired. Always the name of a FileSystemObject
filespecRequired. The name of the file whose existence is to be determined. A complete path specification (either absolute or relative) must be provided if the file isn't expected to exist in the current folder.


نوشتاری موجودیت یک پوشه : 

object.FolderExists (folderspec)



  استفاده از  CreateObject و Set برای استفاده از متدهای این شئ : 



Scripting.FileSystemObject


از Set اگر استفاده نشود،  به آن مجموعه که این متدها و ویژگیها را داراست نمی توان دست یافت و با خطا مواجه خواهید شد یادتان نرود عزیزان شما در اکسس و هر زبانی با یکسری Dll سر وکار دارید و برای دسترسی به آنها باید اقداماتی نمود یا تیک آنها را در کتابخانه زد یا ...

-object.GetFile (filespec)
-object.GetFolder (folderspec)

Methods: 
Add
Copy
CreateTextFile
Delete
Move
-Properties:
DateCreated
DateLastAccessed
DateLastModified
Drive
Files
IsRootFolder
Name
ParentFolder
ShortPath
Size
SubFolders
Type





لطفاً در نظر سنجی شرکت کنید مطالب بالا قطعا برای هر اکسس کاری مفید خواهد بود و از داکیومنت خود آفیس بهره بردیم برای یادگیری شما عزیزان ، حتی نظر خیلی کم هم بدهید برای بنده باارزش خواهد بود

























SetOption , GetOption Method



از متدهای SetOption و GetOption برای تنظیم و گرفتن مقادیر انتخاب ( Option Box ) در جعبه دیالوگ Options استفاده کنید.برای مشاهده این دیالوگ باکس ، اول باتن Office  و سپس Access Options را کلیک نمائید.

مقداری که به متد SetOption بعنوان آرگومان  ارسال می کنید  بستگی به نوع گزینه ای دارد که تنظیم می کنید.


مثال : 


گرفتن مقدار :

Debug.Print Application.GetOption("Selection Behavior")

ارسال مقدار :

Application.SetOption "Selection Behavior", 1

مثال دیگر گرفتن فولدر پیش فرض دیتابیس

Application.GetOption("Default Database Directory")



خاموش کردن تنظیم اعلان های تائید تغییر رکورد ، حذف و کوئری های اکشن  یا استفاده از متد Docmd.SetWarnings False


Application.SetOption "Confirm Record Changes", False

Application.SetOption "Confirm Document Deletions", False

Application.SetOption "Confirm Action Queries", False






















Private Declare Function GetUserNameA Lib "advapi32.dll" Alias _
(ByVal lpBuffer As String, nSize As Long) As Long






غیر فعال کردن تیک CheckBox با فعال کردن کنترل تیک چک باکس دیگر در فرم



لطفا در صورت اعلام نظرسنجی خیلی کم یا کم در همان یادداشت علت را ذکر کنید



دو تا کنترل چک باکس در فرمی تعبیه شده می خواهیم با زدن تیک یکی تیک دیگری برداشته شود.


در رویداد کلیک هر کدام می توانید دیگری را فالز یا صفر کنید اگر درسته لطفا نظر بدهید.


checkbox2=Not Checkbox1

یا

CheckBox2=0


چک کنید کدام درست است و اعلام بفرمائید.


threads/if-checkbox1-is-selected-cannot-select-checkbox2-if-checkbox2-is-selected-cannot-select-checkbox1


چنانچه تعداد چک باکس ها زیاد باشد که معمولا همچین کاری کمتر پیش میاد مگر اینکه خلافش ثابت بشود >>> باید در رویداد Click هر کنترل ، سایر کنترل ها را مقدار صفر دهید که زمانبراست ( البته منظورم چک باکس های بیش از ۸ باکس است ). روشی را باید بیابید که در کنترل های چک باکس با نام معین لوپ بزند و اگر اسم کنترل فعلی که زده شد نبود آنها را False نماید  ... اگر کسی به روش مذبور دست پیدا کرد برای نمایش و استفاده سایر کاربران در نظرات قرار دهد.



اجرای کوئری به روز رسانی : 

تیک چک باکس با نام Acct در کل رکوردهای جدول tblData ، در صورتیکه زده شده باشد ( برابر True یا عددی غیر صفر ) را بر می دارد.


Run an UPDATE query.

CurrentDb.Execute "UPDATE tblData1 SET Acct = False WHERE Acct <> False"


اسنادِ ویژگی ( Property ) و اشیاءِ ( Object ) مایکروسافت آفیس به رایگان برای مطالعه همه قرار داده شده مثل ویژگی زیر .لطفا دنبال کد آماده نباشید!!!  در خود  مثال های خیلی خوب و کاربردی آورده که فقط با مطالعه و تست زیاد می توان یاد گرفت.


ویژگی ControlType (جهت مطالعه)

office-2003















نسخه اکسس پیتر نورتون



به نسخه تمیزی از کتاب برنامه نویسی در اکسس ۲۰۰۰ یا ۲۰۰۲ پیتر نورتون نیازمندم اگر شخصی قصد فروش داشت لطفا کامنت بذاره.




عدم مسئولیت مدیران صدا و سیما در پخش



اردیبهشت ۱۴۰۲ ( تاخیر در پخش آخرین قسمت زندگی پس از زندگی )






دادگاهی در لاهه هلند روز جمعه به مردی که به گفته قضات این دادگاه، پدر ژنتیکی حدود 600 کودک و نوجوان در سراسر جهان  است، دستور داد از اهدای اسپرم خود خودداری کند.

به گزارش عصرایران به نقل از رویترز، در حکم دادگاه آمده است که این مرد هلندی 41 ساله که با نام "جاناتان میجر" معرفی شده است، از اهدای اسپرم به کلینیک های داخلی و خارجی منع شده است. دادگاه حکم داده در صورت سرپیچی از حکم دادگاه، برای هر بار 100 هزار یورو جریمه شود. 











تابع RND در اکسس




تابع RND عددیست بین 0 و 1 .. و مثل یک ضریب عمل می کند 





اگر مفید بود لطفا در نظر سنجی شرکت کنید 


The code module contains the Wichmann-Hill (1982) CLCG (combined LCG) in VBA and is fully functional. It is called RndX() and is used in conjunction with its own RandomizeX(). It has a much longer repeat cycle than Microsoft's Rnd().



فروردین ۱۴۰۲ : خلیل عقاب پدر سیرک ایران و  بالا برنده یک فیل ، هم در ۹۹ سالگی وفات نمود.روحش شاد




دندان های شیری بچه ها دارای سلول های بنیادین پس دورش نندازید حتما مکان هایی وجود دارند که خریدارشن 



حمیرا در پاییز ۱۳۴۴ خورشیدی با خواندن اثر «صبرم عطا کن» به شهرت رسید. با پخش صدایش در رادیو پدر او را می شناسد و برای حفظ آبرو تمام صفحات موسیقی حمیرا را از بازار می‌خرد و در خانه انبار می‌کند و با تشر جدی حمیرا را از هرگونه فعالیت موسیقی منع می‌کند.

مدتی بعد اما با سفر اروپایی پدر ، دوبار حمیرا با حمایت مادرش آهنگی به نام «سرگردان» را می‌سازد که این‌بار با برگشت پدر او برای همیشه از خانواده طرد و از ارث محروم می‌شود.