แสดงกระทู้

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

หน้า: [1] 2 3 4 5
1
มีฟอร์มหลักเลือกกลุ่มเรียน ข้อมูลหล่นลงในฟอร์มย่อย แล้ว ทีนี้ผมอยากสั่งพิมพ์เฉพาะที่มีการติ้กในปุ่มเลือก ถ้าไม่มีการติ้กในปุ่มเลือกให้สั่งพิมพ์ทั้งหมด
ผมทำในคิวรี่แล้ว ตอนสั่งพิมพ์มันดันสั่งพิมพ์เฉพาะที่เรามีเครื่องหมาย พอเราเอาเครื่องหมายออก คิวรี่ก็ไม่แสดงข้อมูลส่งมา
เงื่อนไข (((groupcourse.printBar) Is Null)) OR (((groupcourse.printBar)=-1));
ผมต้องใส่คิวรี่ตอนกรองข้อมูลยังไงดีครับ หรือ
หากเป็นโค้ดตรงกดปุ่มเลือกรายงาน if printBar ในฟอร์มย่อย  ไม่มีเครื่องหมาย ให้สั่งพิมพ์ทั้งหมด else พิมพ์เฉพาะที่มีเครื่องหมายเท่านั้น ทำนองนี้ครับ
ไม่อยากทำฟอร์มเพิ่มว่า ฟอร์มนี้เฉพาะปริ้นข้อมูลที่มีเครื่องหมาย
ฟอร์มข้างบนพิมพ์ทั้งหน้า

2
ขอบคุณครับ... ผมจะนำไปปรับใช้ ผมได้แก้ไขปัญหาขณะรอคำตอบคือ สร้างคิวรีเพื่อสร้างตาราง F1 สร้างตาราง F2 ทุกครั้งมีการเก็บคะแนนใหม่ แล้วก็ใช้คิวรี่ สองตัวมาลบกันอีกทีครับ โดยมี กลุ่มเรียนเป็นตัวเชื่อม

3
คล้ายๆของเอ็กเซลแนวนี้เลยครับ แบบนี้เลยครับ ผมลองใช้คำค้นดู ......... แต่ผมก็ไม่สามารถทำอะไรกับแนวโค้ดเหล่านี้ครับ เผื่อผู้รู้แวะมาตอบครับ ขณะที่รอคำตอบ ก็ลองค้น ด้วยคำว่าตัดสต๊อก เราต้องสร้างตารางเก็บแต่ละค่าไว้ ว่า ตารางนี้เก็บ F1 ตารางนี้เก็บ F2 โดยมีตัวอ้างอิงคือ กลุ่มเรียน/ชั้นเรียน
Is there an easy way to subtract one row from another row but only if there is data. For example a2-a3 to z2-z3 etc. Only if those fields are populated.
Thanks,
Greg

Logic: If A2 and A3 is not blank, then subtract A2 minus A3.
Code:
Sub myMacro()
     Dim myArray(1, 25) As Long
     myArray(0, 0) = Range("A2").Value
     myArray(1, 0) = Range("A3").Value
     myArray(0, 1) = Range("B2").Value
     myArray(1, 1) = Range("B3").Value
     myArray(0, 2) = Range("C2").Value
     myArray(1, 2) = Range("C3").Value
     myArray(0, 3) = Range("D2").Value
     myArray(1, 3) = Range("D3").Value
     'Continue here and add all the ranges to the array.
     i = 0
     Do Until i > 25
          value1 = myArray(0, i)
          value2 = myArray(1, i)
          myResult = myFunction(value1, value2)
          MsgBox myResult
          i = i + 1
     Loop
End Sub

Function myFunction(value1, value2)
     If value1 <> "" _
     And value2 <> "" Then
          myFunction = value1 - value2
          Exit Function
     End If
     myFunction = ""
End Function

doogis

Thanks for the reply. Is there something I can do with a "range" command? If my data is not static and is >25 then I have to change the code.
My data looks like this,


#4
Code:
Sub myMacro()
     c = 1
     lc = Cells(1, Columns.Count).End(xlToLeft).Column
     Do Until c > lc
          Cells(3, c).Value = myFunction(Cells(2, c).Value, Cells(3, c).Value)
          c = c + 1
     Loop
End Sub
Function myFunction(value1, value2)
     If value1 <> "" _
     And value2 <> "" Then
          myFunction = value1 - value2
          Exit Function
     End If
     myFunction = ""
End Function

4
อยากทราบสูตรในการหาความต่างของคะแนนก่อนกลางภาค กับ หลังกลางภาค ดูว่ารายการไหนมีมากมีน้อย
field
group--scorezone ------fullscore
---21F--------1---------------100
---21F--------2---------------50
...
ผลลัพธ์คือ (1-2) 100-50 = 50
ตอนนี้ทำแบบส่งออกเซลแล้วก็ลบเอาครับ ถ้าได้รับคำตอบมาก็จะเก็บไว้ใช้คราหน้าต่อ
ขอบคุณครับ  รบกวนส่งออกไฟล์เป็น mdb ให้ก่อนครับ

5
=DLookUp("[fname]","[students]","[students].[code ]=[code ]")

ตารางที่นำมาขึ้นใน subform ชื่อตาราง tblStjobs ครับ students คือ มีรหัส(code) และ ชื่อนักเรียน (fname) ค้นหาเจอแล้วแต่ขึ้นแต่ชื่อนักเรียนคนเดิมทุกบรรทัดเลย พอแก้ไขได้ไหมครับ . (ช่วยส่งไฟล์ออกมาเป็น access 2003 mdb ให้หน่อยครับ)
ขอบคุณครับ

6
ได้แล้วครับ ตามกระทู้นี้เลย https://answers.microsoft.com/en-us/msoffice/forum/all/linking-a-combobox-to-a-subform/fac2f746-3179-4850-a6fd-f873593cd7bd 


ส่วนกระทู้ของ Sakda ที่ถามก่อนโพสต์นี้ จุดนั้น ทำได้ประมาณ เลือกกลุ่มเรียนของผู้เรียน และ เลือกรายชื่อนักเรียนที่เรียนในกลุ่มนั้น แต่ ไปตายตรง ถ้าทำ subform แล้วจะเอา 2 คอมโบ นั้นมาเชื่อมกันแล้วให้เอาข้อมูลมาได้อย่างไร (เลยเปลี่ยนมาเอาวิธีในกระทู้นี้แทนครับ)

7
มี MainForm unbound ชื่อ Combo23 เก็บค่า gCodeId ไว้ เมื่อเลือกเหตุการณ์ after update แล้วอยากให้ มันกรองข้อมูลตรงชื่อฟิลด์ gCodeId ใน subForm gCodeId แต่ คิวรี่ใน subform fsubtblStJobs มันได้เชื่อมความสัมพันธ์แบบ PK มันเลยไม่แสดงข้อมูลตรงตามที่เลือกครับ : ตัวอย่างที่สืบค้นในอินเตอร์ ไม่ได้สักที Private Sub Combo23_AfterUpdate()
Me.Combo23.Value = Me.Parent.Form.Controls("gcodeid").Value Me.fsubtblStJobs.Form.Requery End Sub พอมีแนวทางไหมครับ กำลังแก้ไขข้อมูลระบบนักเรียน 1 คน เรียนกับครูคนเดียวกัน 2 รายวิชา เวลากดเลือก เลขประจำตัวนักเรียน code ที่เป็น primary key แล้วมันแสดงข้อมูลขึ้นมาทั้งสองวิชา เลยจะหาทางทำยังไงก็ได้เมื่อเลือกเลข gCodeId แล้วมันเชื่อมให้ตรงกับรายวิชาที่เรียนครับ (ตามปกติที่ใช้งานได้คือ เชื่อมและแก้ไขข้อมูลโดยใช้ code เป็นตัว master และ child link ครับ


8
เอาโค้ดไปปรับให้เข้ากับงานของตัวเองได้แล้ว วิธีการคือ แปลงไฟล์ที่ทำมาจากรุ่นสูงอย่างไรก็ได้ให้ไฟล์ mdb ไม่ฟ้องว่าไม่รู้จักฐานข้อมูล หลังจากนั้น ผมก็ค่อยๆ ลบออกทีละส่วน ลองประมวลผลไปทีละนิดๆ

9
มีโค้ดของ PRN ผมเอาใส่ใน module มาด้วยครับ แต่ของผมคือคลิกเลือกมาตามลำดับของ combo box ครับ หรือผมต้องค่อยๆ แกะโค้ด

10
ลองแล้วครับ .... ล้างเครื่องเดิมเป็นวิน 10 มา เป็นวิน 8 ลงออฟฟิซ(ออฟฟิซเวอร์ชั่นของร้าน) กลับมาปกติ (โน้ตบุค) อีกรอบจะเป็นวิน 10 บราวเซอร์เข้าไม่ได้อีก ลง vmware เพื่อน้องแอคเซส 2003 
เครื่องบนที่ทำงาน ลองทุกวิถี สเปคได้แค่วิน 8 รอล้างเครื่องลงใหม่ ออฟฟิซ(ของเรา) ใหม่
อีกอันที่ลอง ถ่ายรูป regedit ของเครื่องดี ไปเทียบกับเครื่องที่ไม่ดี ดันมีหน้าตาไม่เหมือนกันอีก ไม่รู้เวอร์ชั่นออฟฟิซต่างที่กันไหม

11
แอคเซส 2003
กด ก็มีบาร์ข้างบนสุดกะพริบกะพริบเฉยๆ จนปัญหาได้แก่ไข คือ ลบโปรแกรมด้วย ccleaner windows และล่าสุดด้วย iobit uninstaller เห็นสิ่งที่ค้างในเครื่องแล้วกดลบแล้ว ติดตั้งออฟฟิซ 2003 แล้ว แอคเซสลองเลือกติดแบบจะใช้แล้วค่อยติดตั้ง ก็ยังไม่แสดง เข้าไปในลบใน regedit ก็แล้ว ตรง commandbars รอคำตอบบนเว็บแป้บ....ไม่อยากเอาเครื่องไปล้างแล้วติดตั้งวิน+แอคเซส ใหม่

12
คลิกตรงรูปภาพ เรื่องที่เราสนใจ มองข้างโฆษณาไป แล้วก็มีปุ่ม โหลด PDF อยู่ด้านล่าง กดโหลดได้เลย......

13
ขอบคุณครับ คือ ในฐานะที่เป็นลูกค้าคนหนึ่ง สินค้าบางตัวบาร์โค้ดมันยิงไม่ได้พนักงานเขาก็จะต้องดูรหัสข้างกล่อง ส่วนใหญ่ตรงเลขใต้บาร์โค้ดก็ไม่ค่อยเห็นวรรค ถ้าวรรคพนักงานก็คงจะอ่านง่ายขึ้น ใช้เวลาน้อยลง ยิ่งบางทีพนักงานให้อีกคนบอกเลขบาร์โค้ดก็สื่อกันผิด ก็ต้องเริ่มใหม่...อันนี้ตรงกล่องหรือสลากสินค้า ถ้าวรรคตัวเลขที่กำกับก็จะดี ส่วนปัญหาอีกอันของห้างในท้องถิ่นที่นี่ สินค้าบางอันเราอยากจะเอาไปคืนหรือเปลี่ยน สินค้าไม่สะดวกที่จะยกมาให้ยิงบาร์โค้ดกลับคืน พนักงานก็จะดูในสลิปที่แสดงเลขรหัสบาร์โค้ด แล้วตัวเลขมันติดกัน คิดว่าถ้ารหัสสินค้าเวลาพิมพ์ลงใบเสร็จรับเงิน โปรแกรมเมอร์ที่เขียนโปรแกรมด้าน POS ขอช่วยวรรคให้มันอ่านง่ายน่าจะดี จะทีละ 3 ตัว หรือ 4 ตัวค่อยวรรคก็ได้ ทำนองนี้ ครับ .... ส่วนห้างดอกบัวเคยไปซื้อของแล้วจ่ายผ่านทรูวอลเล็ต เงินไม่พอค่าสินค้า แต่บาร์โค้ดชำระเงินออกแล้ว ห้างนี้เขายิงคืนสินค้าทุกชิ้นแล้วก็เริ่มต้นการชำระค่าสินค้าใหม่ครับ....หรือบางทีสมัยนี้ลูกค้าก็ยังต้องใช้เลขอธิบายบาร์โค้ดในการค้นหาสินค้า ค้นหาของแหล่งผลิตสินค้าบนกูเกิ้ลได้อีกช่องทางหนึ่ง ถ้าเลขอธิบายบาร์โค้ดมีวรรคด้วย ก็น่าจะดี อ่านสะดวกขึ้น ในความคิดของผมครับ

14
ติดขัดคิวรี่มาตั้งแต่ปี 63 ได้คำตอบในปีนี้แล้วครับ ผมส่งเฉลยมาเพิ่มครับ
SELECT DISTINCTROW NetGrade.group, NetGrade.code, NetGrade.sTotal, NetGrade.sNet, scores.letterGrade
FROM scores, NetGrade
WHERE (((NetGrade.sNet) Between [scores].[lowerlimit] And [scores].[upperlimit]));

15
มีตารางเกรด ตารางคะแนน อยากเอาคะแนนที่เด็กๆ ทำได้ ไปเข้าว่าตรงเกณฑ์ตารางเกรดตรงไหน ควรจะได้เกรดอะไร
ติดขัดนั่งทำตั้งแต่เมือคืนจนถึงเวลานี้ ไม่รู้จะเป็นคำตอบที่ถูกไหม ค้นเจอค้นหาตัวนี้ตอนที่จะมาอัพโหลดไฟล์ขอความช่วยเหลือบนไทยแอคเซส
จากลิงก์นี้ https://www.oreilly.com/library/view/access-cookbook/0596000847/ch01s10.html
ผมยังไม่ได้ทำตามลิงก์ที่ให้ครับ คาดว่าน่าจะตรงที่กำลังติดขัด ไฟล์ที่อัพขึ้นมาเผื่อคุณครูท่านอื่นๆ จะช่วยส่งเฉลยครับ

16
มีเลขที่สูงสุดอยู่ 22 เลขที่เลยคิดว่าจะขมวดเลขที่ 1 เอาของทุกระดับชั้น ทุกห้อง มาอยู่แถวเดียวกัน สร้างครอสแทปคิวรีหลายรอบแล้วไม่ได้สักที จึงเปลี่ยนมาเป็นสร้างตารางเก็บข้อมูลไว้แทนครับ เพื่อให้ง่ายต่อการสร้างครอสแทปต่อไป อยากให้ครอสแทปมีหน้าตาแบบนี้
เลขที่ ชื่อ
1      ก ข ค ง
2      a b c d
3      aa bb cc dd
...
22    ca cb cc cd
คิวรี่อันสุดท้ายที่พยายามก่อนมาตั้งคำถามครับ
TRANSFORM Count(sortNoEachClass.room) AS CountOfroom
SELECT sortNoEachClass.roomNo, Count(sortNoEachClass.room) AS [Total Of room]
FROM sortNoEachClass
GROUP BY sortNoEachClass.roomNo
PIVOT sortNoEachClass.FirstOffname;

อันนี้จากตารางปัจจุบันนำไปคัดลอกวางในเอ็กเซลครับ ทำจนเสร็จแต่จะมีปัญหาตอนเด็กมาเพิ่ม หรือ เด็กลาออก เลยอยากทำบนแอคเซสแทน

17
มีคนถามว่า อยากให้เช็คเท็กซ์บ็อกซ์ ถ้าว่างให้เปลี่ยนสีให้หน่อย
Text box name = HomeMobile

What event should I use on the report: • Private Sub Report_Load() • Private Sub Report_Open(Cancel As Integer)

Private Sub Report_Open(Cancel As Integer)

If IsNull(Textbox.Value) = True Then
Textbox.BackColor = vbRed

End If

End Sub

อีกคำตอบ


You could try with the Format or Print event, and also arrange for the colour to be reset:

Textbox.BackColor = IIf(IsNull(Textbox.Value), vbRed, vbWhite)

อันนี้คำถามว่า อยากให้ฟอร์มโหลดขึ้นมาแล้วเปลี่ยนสีทุกกล่องข้อความ

You can place this code in the Onload event of your form and this will change all of your boxes at one time.
Delcare the control:
Dim tb as Control
Code:
 For Each tb In Me.Controls
        If TypeOf tb Is TextBox Then
            tb.BackColor = 'your color goes here
        End If
    Next
-----------------------------------------------------------------------------
อันนี้โค้ดของคนถาม
For Each Ctl In Detail.Controls
'ตรวจสอบเฉพาะที่เป็นประเภท TextBox / Combo Box
If Ctl.ControlType = acTextBox Or Ctl.ControlType = acComboBox Then 'Or ctl.ControlType = acCheckBox
'และเฉพาะที่ชื่อชื้นต้นด้วย Status
If Ctl.Name Like "Status*" Then
'ถ้าได้ค่าว่างๆ
If Ctl &"" = "Less than 1 day" Then
isBlank = "LT"
Elsef Ctl &"" = "More than 1 day" Then
isBlank = "MT"
Elsef Ctl &"" = "Card expired" Then
isBlank = "C"
Exit For
End If
End If
Next
If isBlank = "LT" Then
Ctl.BackColor = vbYellow
Elself isBlank = "MT" Then
Ctl.BackColor = vbGreen
ElseIf isBlank = "C" Then
Ctl.BackColor = vbRed
Exit Sub
End If
End if


หน้า: [1] 2 3 4 5