กระทู้เก่าบอร์ด อ.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 จะใช้ยังไงครับ
ที่อยากได้คำชี้แนะ
คือในคิวรี่ จะมี 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
2 @R03110
ข้อมูลสมมติ คุณมีแหล่งข้อมูลคือ qrA
ใน qrA มีข้อมูลฟิลด์เดียวชือ Field1
ใน 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
มันมีสองขั้นตอนแค่นี้เองครับ จะให้ทำตัวอย่างอีกเหรอครับ
-2 กลับไปดูที่หน้าต่างฐานข้อมูล มองหาตาราง tbTemp ถ้าไม่เจอให้กด F5
มันมีสองขั้นตอนแค่นี้เองครับ จะให้ทำตัวอย่างอีกเหรอครับ
Time: 0.3426s
ถ้าเป็นผมเจองานอย่างนี้ ผมคิดได้ตอนนี้ สองทางเลือกครับ
1 เปลี่ยนโครงสร้างฐานข้อมูล แยกตารางออกจากกันแบบถาวร ปัญหาในอนาคต ก็จะถูกจัดการได้โดยง่าย (ผมแนะนำวิธีนี้ครับ)
2 กรณีทำงานนี้ครั้งเดียวจบไม่คิดจะเตรียมโครงสร้างไว้ในอนาคต คือทำงานเฉพาะหน้านี้ให้เสร็จเป็นพอ คิดว่าในอนาคตไม่น่าจะเจองานอย่างนี้อีก ผมก็จะเขียนเป็นฟังก์ชั่นเฉพาะขึ้นมาใช้เองครับ
ผมเดาว่าตอนนี้คุณคงต้องการคำแนะนำในข้อ 2 มากกว่า (แต่จริงๆ ผมอยากเชียร์วิธีแรกมากๆ ครับ)
งั้นผมจะแนะนำแนวคิด แนวทางการเขียนฟังก์ชั่นสำหรับงานนี้นะครับ (ไม่ควรนำไปใช้กับงานอื่น เพราะว่าคิดขึ้นเพื่องานเฉพาะหน้านี้เท่านั้น)
1) สร้างตารางเปล่าไว้ก่อน tbTemp มีสองฟิลด์ เป็น text ทั้งคู่ ไม่ต้องมี primary
2) นำข้อมูลจาก Field1 ของตารางต้นทางไปกรอกลงใน ฟิลด์แรกของตารางชั่วคราว
ปล. 1.1 กับ 1.2 สามารถทำพร้อมกันได้ในคำสั่งเดียว
3) วนลูป เพื่ออัพเดตฟิลด์ที่ 2 ของตารางชั่วคราวโดยหลักการเดียวกับสูตรใน excel ของคุณ
จบงานแล้วครับ ข้อมูลที่ได้จะอยู่ในรูปตาราง (ไม่ใช่คิวรี่) โดยตารางนั้นก็คือ ตารางชั่วคราวนั่นแหละครับ
ปล. ประโยคหรือวลีนี้ สะกดผิดอย่างมหันต์เลยครับ "ลงมาเลี่อยๆ จนกว่าจะมี User ใหมอ่ครับ"