แสดงกระทู้

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 - UnKnown

หน้า: 1 ... 6 7 8 [9] 10 11 12 ... 18
145
ฟอร์ม A,B เปิดอยู่พร้อมกันหรือเปล่าครับ :question:

1. ฟอร์ม A เปิด,ฟอร์ม B ปิด & ไปขึ้นทะเบียนใหม่ในตาราง B โดยวิธีที่ผมใช้นั้นคือ
  1.1 ในฟอร์ม A ทำปุ่มเปิดฟอร์ม Bฉบับไร้เงา(DoCmd.OpenForm "Bฉบับไร้เงา")
  1.2 ที่ฟอร์ม Bฉบับไร้เงา(ผูกข้อมูลอยู่กับตาราง B) ทำกล่องข้อความเพื่อเก็บค่าต่างๆที่ต้องการเช่น
       - กล่อง vaNo สั่งผูก Control Source = vaNo , สั่งดึงข้อมูลมาจากฟอร์ม A (ที่เปิดอยู่) Default Value = =[Forms]![ฟอร์ม A]![ชื่อกล่องที่จะดึงมา]
       - กล่อง vaCus_Name สั่งผูก Control Source = vaCus_Name , สั่งดึงข้อมูลมาจากฟอร์ม A (ที่เปิดอยู่) Default Value = =[Forms]![ฟอร์ม A]![Name]
       - .....
  1.3 ฟอร์ม Bฉบับไร้เงา สั่งบันทึกข้อมูลลงตารางและสั่งปิด
โค๊ด: [Select]
Private Sub Form_Close()
    DoCmd.RunCommand acCmdSaveRecord
End Sub
Private Sub Form_Load()
    DoCmd.Close
End Sub

2. ฟอร์ม A,B เปิด คล้ายวิธีตามข้อ1 เพียงแต่แบบนี้จะออกแบบให้ TextBox ในฟอร์ม B ผูกกับตารางB ไหนอย่างไรหรือไม่ก็ได้,ตัว TextBox ไม่สามารถดึงข้อมูลมาได้แบบ 1.2 = เปลี่ยนเป็นใช้วิธีทำปุ่มคำสั่งให้ทำการดึงข้อมูลจากฟอร์ม A มาใส่ฟอร์ม B (ถ้าเป็นจะให้ A ส่งไป B นั่นผมไม่รู้วิธีครับ)
โค๊ด: [Select]
Private Sub Command16_Click()
     me.vaNo = [Forms]![ฟอร์ม A]![ชื่อกล่องที่จะดึงมา]
     me.vaCus_Name =[Forms]![ฟอร์ม A]![Name]
     .....
End Sub

เป็นแนวทางเบื้องต้นลองนำไปปรับใช้ดูครับผม :yuush:

146
ดูจากธาตุแล้ว นึกถึง ragnarok ขึ้นมาเลยครับ Hunter สายล่าบอส  :cool: :cool:
ถูกถูก..ถูกต้องนะครับบ :shout:

ตอนนี้ผมใช้คำสั่ง call แบบนี้อยู่ในอีกชุดคำสั่งนะครับ แต่อย่างว่ามันล่ะตัวชุดจึงต้องไล่ทำมันทุกอันเลยนะครับ=เยอะ จึงนึกถึงโมดูลอย่าง Function BahtText(ByVal sNum) แนวว่ามันเรียกใช้ให้อ่านค่าแล้วแสดงผลออกมาอีกแบบได้เลยนะครับ(นึกถึงแต่ดูแล้วแกะไม่เป็น)
โค๊ด: [Select]
Private Sub Form_Current()
    Call PicBoss
End Sub

Private Sub Nboss_01_AfterUpdate()
    Call PicBoss
End Sub
Private Sub Nboss_02_AfterUpdate()
    Call PicBoss
End Sub
.....

Public Sub PicBoss()
DoCmd.SetWarnings False

If IsNull(Me.Nboss_01) Then
    Me.PB_01.Picture = ""
    Me.PT_01.Picture = ""
'    Me.PE_01.Picture = ""
    Me.NR_01.Value = ""
Else
    Me.PB_01.Picture = CurrentProject.Path & "\Pics\" & Nboss_01.Column(5)
    Me.PT_01.Picture = CurrentProject.Path & "\Pics\" & Nboss_01.Column(2) & ".png"
'    Me.PE_01.Picture = CurrentProject.Path & "\Pics\Element\" & Nboss_01.Column(4) & ".png"
    Me.NR_01.Value = Nboss_01.Column(3)
End If
If IsNull(Me.Nboss_02) Then
    Me.PB_02.Picture = ""
    Me.PT_02.Picture = ""
    Me.PE_02.Picture = ""
    Me.NR_02.Value = ""
Else
    Me.PB_02.Picture = CurrentProject.Path & "\Pics\" & Nboss_02.Column(5)
    Me.PT_02.Picture = CurrentProject.Path & "\Pics\" & Nboss_02.Column(2) & ".png"
    Me.PE_02.Picture = CurrentProject.Path & "\Pics\Element\" & Nboss_02.Column(4) & ".png"
    Me.NR_02.Value = Nboss_02.Column(3)
End If
.....
 
DoCmd.SetWarnings True
End Sub




147
เนื่องด้วยผมมี Combo Box(Nboss_xx) อยู่ประมาณ 30ตัว โดยเมื่อเลือกแล้วจะดึงค่าไปแสดงผลที่ Text Box(Ne_xx) และเทียบค่าไปแสดงผลต่อที่ Text Box(WinNE_xx)
สามารถเขียนมาโครหรือโมดูลในการทำชุดคำสั่งชุดเดียวใว้ใช้งานแทนที่จะทำแยกทั้งหมด 30ชุดใหมครับ

Private Sub Nboss_01_AfterUpdate()
    Me.Ne_01 = Nboss_01.Column(4)
    Select Case Ne_01
        Case "Undead"        : Me.WinNE_01.Value = "Fire"   
        Case "Earth"      : Me.WinNE_01.Value = "Fire"   
        Case "Fire"      : Me.WinNE_01.Value = "Water"   
        Case "Water"      : Me.WinNE_01.Value = "Wind"   
        Case "Wind"      : Me.WinNE_01.Value = "Earth"   
        Case "Poison"        : Me.WinNE_01.Value = "Holy"   
        Case "Shadow"      : Me.WinNE_01.Value = "Holy"   
        Case "Holy"      : Me.WinNE_01.Value = "Shadow"   
        Case Else            : Me.WinNE_01 = ""   
    End Select
End Sub

148
โค๊ด: [Select]
Private Sub Combo41_AfterUpdate()
    Me.depre_rate.Value = Me.Combo41.Column(2)
End Sub

https://www.thai-access.com/index.php?topic=738.msg3261#msg3261

149
ขนาด width ได้ครับแต่ height ยาวเกิน ครับ
ติดตั้งแล้วครับ รายงารจะออกมาแบบนี้ครับ มี 2 หน้า

1.ออกแบบรายงานกำหนดขนาดไม่ให้เกิน 8cm แล้วใช่ใหมครับ


2.จากที่ว่าเพิ่มขนาด 8x8cm(80*80mm) ลงไปใน print server properties นั้นเครื่องพิมพ์กระดาษความร้อนรองรับใช่ใหมครับ
ตย.เครื่องผมที่รองรับเล็กสุดได้ที่ 55*89mm

150
> เพิ่มขนาด 80*80mm ลงไปใน print server properties ของเครื่องที่จะสั่งปริ้น ตย.วิธี https://www.prosoftibiz.com/Faq/Detail/1262

> ออกแบบรีพอร์ต
/ Access ไม่สามารถตั้งค่าหน่วยวัด(inches,cm)ได้เองต้องตั้งไปตั้งค่าที่ Windows (ทำแค่เครื่องที่ใช้ออกแบบรายงานก็พอครับ)
https://support.office.com/en-us/article/change-the-measurement-units-from-inches-to-centimeters-7fb08d33-750b-4e95-b332-e568d4550d82

/ ดู วิธีสั่งให้รายงานหน้านั้นเลือกเครื่องปริ้นแบบเจาะจง เพิ่มเติมคือเลือกขนาด 80*80 จากที่เราเพิ่มไปในตอนแรกนั้นด้วย



> Print Test

152
จากเดิมอักษรย่อกลุ่มคือ TEX SEX และ AEX ซึ่งนับได้ 3 ตัวอักษร
ท่านใช้ TE, SE และ AE ซึ่งนับได้ 2 ตัวอักษร ดังนั้นแก้เลขตัวนี้ครับ
X = DMax("Right(JobNo,4)", "[Export_Booking_Table]", "Left([JobNo],6) = cmbG & Left([txtDate2], 4)")

ปล.ถ้าจากไฟล์ตัวอย่างแก้ชื่อย่อในเทเบิ้ลที่เก็บชื่อกลุ่มด้วยนะ

153
Trust Center ใน Runtime จะไม่มีให้ตั้งค่า ใช้วิธีแก้ Registry โดยเพิ่ม Trusted Locations
https://www.accessribbon.de/en/?Trust_Center:Trusted_Locations
ถ้างงว่าแก้ยังไงในเว็บด้านล่างโหลดโปรแกรมตามเวอร์ชั่น runtime แตกไฟล์โปรแกมออกมา > นำไปวางใว้ที่เดียวกับไฟล์ Access > รันโปรแกรมจะทำการแก้ regedit ให้ > ทนลองเปิดไฟล์งาน

* สั่งรันเพื่อแก้ regedit เพียงครั้งเดียวต่อหนึ่งที่อยู่ (รันเสร็จลบหรือย้ายไปรันที่อื่นต่อได้)
* ถ้ามีไฟล์ Access อยู่หลายที่เช่น
1. c:/งาน1
2. d:/งาน2/งาน2.2
ให้นำโปรแกรมไปวางใว้แล้วส้่งรันในทุกที่เหมือนเป็นการเพิ่มระเบียนว่ามีที่ไหนบ้างให้ runtime ยอมรับว่าปลอดภัย

ปล.ในส่วนของ Action Query ลองทำตาม อ.สันติสุข ดูก่อนนะครับ :prettiness:

154
มีแล้วครับอาจารย์ ฟอร์ม Admin จะให้ไป unlock ปุ่ม DM500 ครับ

และอีกปัญหาครับอาจารย์ มันฟ้องให้แก้ไขตรง Check ตลอดเลยครับ

 :cry: :cry:

ฟอร์ม Admin ถอดชุดคำสั่งนี้ออกไป > เปลี่ยนเป็นแค่ทำ CheckBox ผูกใว้เพื่อแสดงสถานะ และที่ปุ่ม unlock ก็ใช้คำสั่งแค่ Me.Check_cb_no1 = True
หรือว่าท่านไม่ได้ทำ me.Check_cb_no1 by CheckBox เหมือนไฟล์ตัวอย่าง

155
คือยังไงครับ :question:

ปกติท่านมีหน้าฟอร์มของ admin อยู่แล้วยังล่ะครับ  ถ้ายังไม่มีหาดูในบอร์ดเลยครับตัวอย่างของอ.สันติสุข โปรแกรมตัวอย่างการสร้างฟอร์มล็อคอินและเมนูที่เปลี่ยนไปตามผู้ใช้
ฟอร์มผู้ใช้มีแค่ปุ่ม DM500  /  ฟอร์มหัวหน้าถึงจะมีปุ่ม Unlock เป็นต้นครับ

156
แล้วสามารถ สร้างปุ่มให้คลิกแสดงทั้งหมด (+)   ซ่อนทั้งหมด (-)  ได้ไหมครับ ทำอย่างไร
พยายามช่วยหาวิธีทำปุ่มอย่างว่าแต่ยังไม่เจอเหมือนกันครับ  :dizzy:
ที่เจอคือทาง MS บอกว่าสามารถคลิกที่มุมซ้ายบนแล้วจึงมากดที่ +,- จะมีผลต่อรายการทั้งหมดที่อยู่ในชั้นนั้นๆ

157
แก้ชื่อฟอร์ม(ที่แสดงขอบบน)ได้ที่ Format > Caption อยู่บรรทัดบนสุดครับ(เหมือนแก้ป้ายชื่อหรือข้อความที่แสดงบนปุ่ม)

158
จากไฟล์ตัวอย่างใช้วิธี Datasheet > ซ้อน Datasheet > ซ้อน..... > ซ้อน Continuous Forms
Datasheet นั้นจะมีรูปแบบ,มุมมองคล้ายกับ Table ครับ

ส่วนที่ทำ Continuous มาปิดท้ายนั้นตอบเผื่อกระทู้ https://www.thai-access.com/index.php?topic=1191 ที่เคยโพสถามใว้นะครับ
ตัว Continuous Forms นั้นเหมือนจะมีอำนาจอยู่ต่ำสุดจึงไม่สามารถอยู่เหนือใครได้ และ Datasheet ยังคงมี + ไม่สามารถซ่อนได้แบบ Continuous อย่างที่ต้องการครับ

หมายเหตุ  ฟอร์มตัวอย่างสั่งล็อคข้อมูลใว้ ถ้าไม่ล็อคใว้มันก็จะสามารถแก้ไขได้เหมือนเปิดเทเบิ้ลจริงมาแก้

159
1.ท่านสั่งให้มันจำค่าต่างๆ(รหัส,วันที่สั่ง,...)ใว้ที่ Table ไหนก็ไปเพิ่มให้มันจำสถานะปุ่มใว้ด้วยนะ
2.เมื่อเปิดฟอร์มมาก็สั่งให้ตรวจสอบแล้วสั่งให้ปุ่มมีผลตามค่านั้น
ปล.ไม่รู้ว่าท่านสั่งให้ปุ่มชื่อ DM500 มาจากไหนอ่านะครับผมจึงสั่งให้ฟอร์มเป็นตัวกำหนด
โค๊ด: [Select]
Private Sub Form_Current()
    If Me.Check_cb_no1 = True Then
        Me.cb_no1.Caption = "DM500"
        Me.cb_no1.BackColor = vbYellow
        Me.cb_no1.Enabled = True
    Else
        Me.cb_no1.Caption = "Lock"
        Me.cb_no1.BackColor = vbRed
        Me.cb_no1.Enabled = False
    End If
End Sub

Private Sub cb_no1_Click()
    If Me.cb_no1.Caption = "DM500" Then
        Me.cb_no1.Caption = "Lock"
        Me.cb_no1.BackColor = vbRed
        Me.cb_no1.Enabled = False
        Me.Check_cb_no1 = False
    End If
End Sub

Private Sub cb_no2_Click()
    Me.cb_no1.Caption = "DM500"
    Me.cb_no1.BackColor = vbYellow
    Me.cb_no1.Enabled = True
    Me.Check_cb_no1 = True
End Sub

160
จะให้จำสถานะเมื่อปิด-เปิดฟอร์มใหม่ก็เก็บบันทึกค่าใว้ในตารางครับ

เมื่อเปิดฟอร์ม > เช็คค่าสถานะ
เมื่อกดปุ่ม(ที่ต้องการล๊อค,ปลดล๊อค) > แก้สถานะปุ่ม(ใช้ Me.cb_no1.Enabled = False หรือ True ) & บันทึกสถานะลงตาราง

161
แวะมาโพสรูปเทียบไฟล์เดียวกันเครื่องเดียวกันแต่เปิด-ปิด Visual effects ของ Windows ต่างกัน
ผลคือถ้าปุ่มตั้งค่า Use Theme = Yes ใว้ Visual effects ไม่มีผล  :question:

162
เพิ่ม,แก้ไขข้อมูลในฟอร์มหลัก แล้วให้ข้อมูลตารางในซับฟอร์ม requery

ในปุ่มหรือชุดคำสั่งที่เราใช้สั่งบันทึกในฟอร์มหลัก
Form2.Requery    'Form2 คือชื่อซับฟอร์ม

กระทู้ไฟล์ตัวอย่างครับ https://www.thai-access.com/index.php?topic=581.msg2556#msg2556

หน้า: 1 ... 6 7 8 [9] 10 11 12 ... 18