PDA

View Full Version : سوال: تغيير Capion يك فيلد از جدول با كدنويسي



morynf
جمعه 22 آذر 1387, 18:42 عصر
با سلام خدمت دوستان سايت برنامه نويس :
از دوستان مي خوام بپرسم ايا راهي وجود داره كه caption يك فيلد از جدول رو از طريق كدنويسي تغيير داد .

مهدی قربانی
شنبه 23 آذر 1387, 01:32 صبح
سلام
با استفاده از كدهاي زير شما قادر به تغيير Caption فيلد هاي جداولتون خواهيد بود :

اين كدها رو در يك ماجول جديد كپي كنيد :


Function SetPropertyDAO(obj As Object, strPropertyName As String, intType As _
Integer, varValue As Variant, Optional strErrMsg As String) As Boolean
On Error GoTo ErrHandler

If HasProperty(obj, strPropertyName) Then
obj.Properties(strPropertyName) = varValue
Else
obj.Properties.Append obj.CreateProperty(strPropertyName, intType, _
varValue)
End If
SetPropertyDAO = True

ExitHandler:
Exit Function

ErrHandler:
strErrMsg = strErrMsg & obj.Name & "." & strPropertyName & " not set to" _
& varValue & ". Error " & Err.Number & " - " & Err.Description & vbCrLf
Resume ExitHandler
End Function

Public Function HasProperty(obj As Object, strPropName As String) As Boolean
'Purpose: Return true if the object has the property.
Dim varDummy As Variant

On Error Resume Next
varDummy = obj.Properties(strPropName)
HasProperty = (Err.Number = 0)
End Function
در مرحله بعدي يك فرم ايجاد كنيد و يك كامند باتون روي اون بذاريد تحت نام cmdChangeCapt و كدهاي زير رو در رخداد On Click اون كپي كنيد :


Private Sub CmdChangeCapt_Click()
On Error GoTo Err_CmdChangeCapt_Click

Dim TbName, FldName, StrCaption As String

TbName = InputBox("نام جدول مورد نظر را وارد نمائيد", "نام جدول")
FldName = InputBox("نام فيلد مورد نظر را وارد نمائيد", "نام فيلد")
StrCaption = InputBox("عنوان برچسب را وارد نمائيد", "عنوان برچسب")

If IsNull(StrCaption) Or StrCaption = "" Then

If MsgBox("عنوان برچسب فيلد تعيين نشده است" & vbCrLf & _
"آيا مايل به تعيين عنوان برچسب هستيد ؟", _
vbExclamation + vbMsgBoxRight + vbRetryCancel, "توجه") = vbCancel Then

Call SetPropertyDAO(CurrentDb.TableDefs(TbName).Fields( FldName), _
"Caption", dbText, StrCaption)
Else

StrCaption = InputBox("عنوان برچسب را وارد نمائيد", "عنوان برچسب")
Call SetPropertyDAO(CurrentDb.TableDefs(TbName).Fields( FldName), _
"Caption", dbText, StrCaption)

End If

End If

Exit_CmdChangeCapt_Click:
Exit Sub

Err_CmdChangeCapt_Click:
If Err.Number = 3265 Then

MsgBox "نام جدول يا نام فيلد وارد شده معتبر نيست", _
vbCritical + vbMsgBoxRight, "خطا"

Else

MsgBox Err.Description
Resume Exit_CmdChangeCapt_Click

End If

End Sub

morynf
شنبه 23 آذر 1387, 01:50 صبح
استاد گرامي مهدي جان :
ضمن تشكر از ارسال جوابيه راستش من اين را براي اين مي خوام كه در برنامه طراحي شده توسط خودم فيلدهاي گزارش بصورت انتخابي توسط كاربر انتخاب مي شوند سپس فيلدهاي انتخابي به يك جدول موقت ارسال مي شوند محتويات جدول موقت به يك فرم انتقال پيدا مي كنند و من خروجي آن را به اكسل مي برم ولي هدر اكسل كپشن جدول مي شود ايا راهي هست كه هدر اكسل را خودم مشخص كنم چون در اين صورت به تغيير كپشن نياز ندارم .
ممنون مي شم كمكم كنيد بزرگوار

مهدی قربانی
شنبه 23 آذر 1387, 02:00 صبح
سلام
دوست عزيز اين موردي كه شما در پست آخرتون مطرح كرديد با موضوع اين تاپيك مغايرت داره بنابراين اين سئوال رو در يك تاپيك جديد و ترجيحاً با قرار دادن نمونه فايلتون مطرح كنيد تا بررسي بشه .

ArbabReza
یک شنبه 24 آذر 1387, 13:24 عصر
سلام
دوست عزیر من فکر می کنم که این کار را با دستور AlterTable در قسمت SQL انجام داد.
اگه لطف کنید فایلتون رو گذاشته و بیشتر توضیح دهید من سعی می کنم که کمکتون کنم