รบกวน อ.หน่อยครับ เรื่องนับข้อมูลแรกเป็นหลัก
กระทู้เก่าบอร์ด อ.Yeadram

 1,575   5
URL.หัวข้อ / URL
รบกวน อ.หน่อยครับ เรื่องนับข้อมูลแรกเป็นหลัก

อยากได้สูตรแบบนี้อ่ะครับ


ที่อยากได้คำชี้แนะ
คือในคิวรี่ จะมี A มี
Field1
USER2502230
01368766G0001
01368766G0002
01368766G0003
01368766G0004
USER999999
01368766G0006
01368766G0007
01368766G0008
01368766G0009

ผมอยากจะให้เพิ่มอีก 1 ฟิว
Field1                         Field2
USER2502230     USER2502230
01368766G0001     USER2502230
01368766G0002     USER2502230
01368766G0003     USER2502230
01368766G0004     USER2502230
USER999999     USER999999
01368766G0006     USER999999
01368766G0007     USER999999
01368766G0008     USER999999
01368766G0009     USER999999
ให้ Field2 แท่นค่า คำว่า User* ลงมาเลี่อยๆ จนกว่าจะมี User ใหมอ่ครับ
งง ไหมครับ...
ถ้าเป็นสูตร excel จะใช้อย่างี้อ่ะครับ
=IF(LEFT(A2,4)="USER",A2,B1)
แต่จะใช้ใน คิวรี่ ใน access จะใช้ยังไงครับ





5 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R03109
ถ้าเป็นโดยคิวรี่เดียว หรือคำสั่งเดียวคงยากครับ

ถ้าเป็นผมเจองานอย่างนี้ ผมคิดได้ตอนนี้ สองทางเลือกครับ
1 เปลี่ยนโครงสร้างฐานข้อมูล แยกตารางออกจากกันแบบถาวร ปัญหาในอนาคต ก็จะถูกจัดการได้โดยง่าย (ผมแนะนำวิธีนี้ครับ)

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

1) สร้างตารางเปล่าไว้ก่อน tbTemp มีสองฟิลด์ เป็น text ทั้งคู่ ไม่ต้องมี primary
2) นำข้อมูลจาก Field1 ของตารางต้นทางไปกรอกลงใน ฟิลด์แรกของตารางชั่วคราว
ปล. 1.1 กับ 1.2 สามารถทำพร้อมกันได้ในคำสั่งเดียว

3) วนลูป เพื่ออัพเดตฟิลด์ที่ 2 ของตารางชั่วคราวโดยหลักการเดียวกับสูตรใน excel ของคุณ

จบงานแล้วครับ ข้อมูลที่ได้จะอยู่ในรูปตาราง (ไม่ใช่คิวรี่) โดยตารางนั้นก็คือ ตารางชั่วคราวนั่นแหละครับ

ปล. ประโยคหรือวลีนี้ สะกดผิดอย่างมหันต์เลยครับ "ลงมาเลี่อยๆ จนกว่าจะมี User ใหมอ่ครับ"



2 @R03110
ข้อมูลสมมติ คุณมีแหล่งข้อมูลคือ qrA
ใน qrA มีข้อมูลฟิลด์เดียวชือ Field1
Function ReStruct_qrA()
Dim Sql As String
Dim Rs As New ADODB.Recordset
Dim Conn As New ADODB.Connection
Set Conn = CurrentProject.Connection

' job for 1st step and 2nd step
Sql = "select Field1, '' as Field2 Into tbTemp From qrA;"
Conn.Execute Sql

Sql = "Select * From tbTemp"
Rs.Open Sql, Conn, 1, 3

' safety first
    If Rs.EOF And Rs.BOF Then
        MsgBox "Error cannot create Tempolary Table"
        GoTo ext
    End If

' job of 3rd step
    Sql = ""
    Do While Not Rs.EOF
        If Left(Rs(0), 4) = "USER" Then Sql = Trim(Rs(0))
        Rs(1) = Sql
        Rs.Update
        Rs.MoveNext
    Loop

ext:
    If Rs.State <> 0 Then Rs.Close
    Set Rs = Nothing
    If Conn.State <> 0 Then Conn.Close
    Set Conn = Nothing
End Function
3 @R03115
ขอบคุฯมากมายครับ
ส่วนเรื่องภาษาประเดี๋ยวจะปรับปรุงใหม่ครับ อิอิ
4 @R03127
พี่ครับขอตัวอย่างได้ไหมครับ
รบกวนด้วยนะครับ
ควรมิควรแล้วแต่จะโปรด
5 @R03135
-1 คัดลอกโค้ดนี้ไปวางในโมดูลเปล่าๆ แล้วกด F5
-2 กลับไปดูที่หน้าต่างฐานข้อมูล มองหาตาราง tbTemp ถ้าไม่เจอให้กด F5

มันมีสองขั้นตอนแค่นี้เองครับ จะให้ทำตัวอย่างอีกเหรอครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3426s