แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - pitakchan

หน้า: 1 [2]
19
ลอง เข้าไปเช็คตรง

Start >> control panel >> Region >> Administrative tab >> change system locale >> มีคำว่า Beta: Use Unicode UTF-8 for world wide language support" ให้ติ๊ก หรือไม่ ถ้ามีให้ติ๊กออกไป  ถ้าไม่มีเดี่ยวหาวิธีใหม่ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: pitakchan

20
เป็นกับทุกไฟล์หรือเปล่าครับ
หากเป็นกับทุกไฟล์ แสดงว่าเป็นที่ตัวโปรแกรม ให้ลองลง Service pack ใหม่สุด ของตัว office 2007 น่าจะเป็น Pack 3 ลองหาใน Google ดูครับ
หากเป็นแค่ไฟล์นั้นไฟล์เดียว แล้ว Decompile ไม่หาย ลองสร้งไฟล์ใหม่เปล่าๆ แล้วค่อยๆก๊อปปี้ Object ต่างๆ ของไฟล์เก่ามาใส่ไฟล์ใหม่ให้ครบดู
เป็นไอเดียประมาณนี้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: pitakchan

21
ลองทำ Decompile ดูครับว่าหายไม๊
https://youtu.be/knFHRm-bwos
โพสต์นี้ได้รับคำขอบคุณจาก: pitakchan

22
ถ้าเป็นในรายงานเราสามารถทำ Running Sum ได้เลย โดยการสร้าง Text Box เปล่าๆ ขึ้นมาใหม่ สมมุติชื่อ txtrun แล้วกำหนด Control Source: =1 กำหนดตรง Running Sum: Over All (หรือ Over Group หากสร้าง Group)
เราจะได้เลยที่เรียงลำดับขึ้นมา จากนั้นก็เปลี่ยนเงื่อนไขใน Text Box ที่เรานับเลข 1-40 ใหม่เป็น
=IIf([txtrun] Mod 40=0,40,[txtRun] Mod 40)
อ้างที่ [txtrun] แทนการอ้างที่ [ID] ส่วนจะให้แสดงหรือไม่ก็กำหนดในส่วน Visible เอาว่าจะเป็น Yes หรือ No
ส่วนเรื่องอยากให้หน้าละ 20 เรคคอร์ดก็ปรับส่วนพื้นที่ Detail ของรายงานให้ความสูงได้ 20 เรคคอร์ดกับหน้ากระดาษที่กำหนดไว้ แล้วแก้โค้ดที่ Detail > Event > On Print:
Const Blank_Line = 20 'จากเดิม 40 เป็น 20 แทน ก็น่าจะใช้ได้แล้วครับ
ไฟล์ตัวอย่างแก้ไข
โพสต์นี้ได้รับคำขอบคุณจาก: pitakchan

23
ตอบรวม 2 ท่านนะครับ

ข้อจำกัดหลัก ก็จะมีอยู่ 2 ข้อคือ
1. ความเร็วของอินเทอร์เน็ต
2. จำนวนผู้ใช้งานต่อไฟล์ ซึ่งตามสเปคของ Access คือ 255 คนต่อไฟล์

สำหรับความเร็วของอินเทอร์เน็ตนี่ช่วยอะไรไม่ค่อยได้ ถ้าจะใช้ดีใช้ผ่านสาย LAN แทน Wifi จะดีสุด
ส่วนจำนวนผู้ใช้งานนั้นผมใช้เรื่องการเขียนโปรแกรมและการแยก UI กับ Data ออกจากกัน เท่าที่ผ่านมาก็ไม่ค่อยพบปัญหานะครับ ปัญหาที่เจอคือเน็ตช้ากับเน็ตล่มครับ
โพสต์นี้ได้รับคำขอบคุณจาก: pitakchan

24
 :cool: :cool: :cool:
โพสต์นี้ได้รับคำขอบคุณจาก: pitakchan

25
ลองดูไหมครับผมว่าของใหม่ก็ดีกว่าของเก่านะ  :cool:
โพสต์นี้ได้รับคำขอบคุณจาก: pitakchan

26
ถ้าต้องการให้แบบฟอร์ม พอดีกับจอของ Users ผมว่าน่าจะต้องมีการ lock spec ความละเอียดนะครับ
เช่น ตั้งไว้ที่ 1,024x768 ทุกเครื่อง รวมทั้งเครื่องที่สร้างฟอร์มด้วย
เพราะถ้าหลายๆเครื่องมีความหลากหลายในค่าความละเอียด ก็ไม่น่าจะเต็มจอได้ทุกจอนะครับ
ไม่รู้ผมเข้าใจถูกป่าว
ถ้าผิด ท่านผู้รู้ช่วยแก้ด้วยนะครับ

จากแนวคิิดของท่านงั้น ก็สร้างคำสั่งให้ปรับขนาดหน้าจอปลายทางอัตโนมัติเมื่อเปิดฟอร์ม หรือ Event ที่ต้องการไปเลยดีไหม เช่น อยากตั้ง ขนาด 1,024x768 กับทุกเครื่อง ก็ให้เปิดฟอร์มมาแล้ว ขนาดจะเปลี่ยนตามเลย Code ตามนี้ครับ

Code นี้วางใน Mudule

โค๊ด: [Select]
Type RECT
x1 As Long
y1 As Long
x2 As Long
y2 As Long
End Type
Declare Function GetDesktopWindow Lib "User32" () As Long
Declare Function GetWindowRect Lib "User32" _
(ByVal hWnd As Long, rectangle As RECT) As Long

Private Declare Function ChangeDisplaySettings Lib "User32" Alias _
"ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwFlags As Long) As Long
Private Declare Function EnumDisplaySettings Lib "User32" Alias _
"EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As _
Long, lpDevMode As Any) As Boolean
 
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const CCFORMNAME = 32
Const CCDEVICENAME = 32
 
Private Type DEVMODE
dmDeviceName As String * CCDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
 
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
 
dmFormName As String * CCFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Public Function Change_Resolution(iWidth As Single, iHeight As Single)
Dim DevM As DEVMODE
Dim a As Boolean
Dim i As Long
Dim b As Long
i = 0
Do
a = EnumDisplaySettings(0&, i&, DevM)
i = i + 1
Loop Until (a = False)
DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
DevM.dmPelsWidth = iWidth
DevM.dmPelsHeight = iHeight
b = ChangeDisplaySettings(DevM, 0)
End Function
Function GetScreenResolution() As String
Dim R As RECT
Dim hWnd As Long
Dim RetVal As Long
hWnd = GetDesktopWindow()
RetVal = GetWindowRect(hWnd, R)
GetScreenResolution = (R.x2 - R.x1) & "x" & (R.y2 - R.y1)
End Function
Sub SetAutoScreen()
Call Change_Resolution(1024, 768) ' กำหนดขนาดตรงนี้
End Sub

ต่อมาไปกำหนด Event Form_Open

โค๊ด: [Select]
Private Sub Form_Open(Cancel As Integer)
Call SetAutoScreen
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: pitakchan

27
 :smile: ผมเคยเจอเหมือนกันครับ ใช้ ms Office ไม่ได้บาง option ต้อง Uninstall Office365 ออก และอีกจุดที่ผมเอาออกตาม link ครับ

https://support.office.com/en-us/article/outlook-freezes-clicking-the-signature-button-c70b36c2-66ca-401c-ab45-f29a46495d02
โพสต์นี้ได้รับคำขอบคุณจาก: pitakchan

28
 :sweat:
ลองอีกสักสักอย่างไหมครับ หรือลองแล้ว...

File > Access Options > Trust Center > Trust Center Settings > Trusted Locations > Add New Location
you may have to add a check to Allow Trusted Locations on my network
โพสต์นี้ได้รับคำขอบคุณจาก: pitakchan

29
ลองเช็คแบบนี้ยังครับ

http://firstblogofvarun.blogspot.com/2010/02/microsoft-access-was-unable-to-create.html
โพสต์นี้ได้รับคำขอบคุณจาก: pitakchan

30
คอมฯทุกเครื่องตั้งชื่อเครื่องพิมพ์ตัวนี้ให้เหมือนๆกันหรือยังครับ
โพสต์นี้ได้รับคำขอบคุณจาก: pitakchan

32
ลองเป็นวิธีนี้ใหมครับ > วิธีเลือกเครื่องปริ้นแบบเจาะจง
โพสต์นี้ได้รับคำขอบคุณจาก: pitakchan

33
- ตั้งชื่อเครื่องปริ้น
- ตั้งค่าระบุให้รายงานเลือกเครื่องปริ้นตามภาพ


ปล.ทำปุ่มสั่งปริ้นออกมาเลยไม่ต้องแสดงตัวอย่างก่อนพิมพ์ เพราะถ้าแสดงตัวอย่างก่อนพิมพ์เวลากดปริ้นที่ด้านซ้ายบนจะขึ้นหน้าต่างมาให้เลือกเครื่องปริ้นเสมออยู่แล้ว
โค๊ด: [Select]
Private Sub Print_Click()
On Error GoTo Err_Print_Click

    Dim stDocName As String.

    stDocName = "R_Bill"  'ชื่อรายงาน
    DoCmd.OpenReport stDocName, acNormal

Exit_Print_Click:
Exit Sub

Err_Print_Click:
    MsgBox Err.Description
    Resume Exit_Print_Click

End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: pitakchan

หน้า: 1 [2]