เขียนไม่เป็นจริงๆ
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 343   7
URL.หัวข้อ / URL
เขียนไม่เป็นจริงๆ

สีบเนื่อง#01320 เรื่องของคนโง่
เขาแจ้งว่าผิด 2 บรรทัดแรก ไม่ทราบว่าจะแก้อย่างไร

Private Sub FillBlankFields()
Dim dbs As Database, rst2 As Recordset
Dim intValue1 As Integer
Set dbs = CurrentDb()
Set rst2 = dbs.OpenRecordset("Problem")

rst2.MoveFirst
' I assume the Null/blank field is called field1
intValue1 = rst2![1สถานที่]
Debug.Print intValue1

With rst2
.MoveNext
Do Until .EOF
' Add the previous value to it if Null or blank.
' Assume the first record is not Null or blank.
If IsNull(![1สถานที่]) Or ![1สถานที่] = "" Then
.Edit
![1สถานที่] = intValue1
Debug.Print intValue1
.Update
Else
' Remember the value
intValue1 = ![1สถานที่]
Debug.Print intValue1
End If
.MoveNext
Loop
End With

rst2.Close
dbs.Close
Set rst2 = Nothing
Set dbs = Nothing

End Sub




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

1 @R03131
ผมยังไม่ได้ดูโค้ดทั้งหมดให้นะครับ แต่ลองแบบนี้ครับ

แก้จาก

Dim dbs As Database, rst2 As Recordset

ไปเป็น

Dim dbs As Object, rst2 As Object


2 @R03132
แก้แล้วก็ยังผิดอีก
ไม่ทราบว่าเพราะอะไร
ฟีลด์สถานที่เป็น text นะคะไม่ใช่ ตัวเลข
Private Sub FillBlankFields()
intValue1 = rst2![1สถานที่]
เวลาทำทำในQueryถูกหรือเปล่าคะ
3 @R03133
งั้นลองเปลี่ยน

Dim intValue1 As Integer

เป็น

Dim intValue1 As String

ครับ


4 @R03134
intValue1 = rst2![1สถานที่]
มันไม่ยอมผ่านให้
5 @R03136
ไม่รู้ว่าโค้ดที่ผมแนะนำให้แก้ ได้ทำเหมือนตรงนี้หรือไม่ครับ

Private Sub FillBlankFields()
Dim dbs As Object, rst2 As Object
Dim intValue1 As String
Set dbs = CurrentDb()
Set rst2 = dbs.OpenRecordset("Problem")

rst2.MoveFirst
' I assume the Null/blank field is called field1
intValue1 = rst2![1สถานที่]
Debug.Print intValue1

With rst2
.MoveNext
Do Until .EOF
' Add the previous value to it if Null or blank.
' Assume the first record is not Null or blank.
If IsNull(![1สถานที่]) Or Len(Trim(![1สถานที่])) = 0 Then
.Edit
![1สถานที่] = intValue1
Debug.Print intValue1
.Update
Else
' Remember the value
intValue1 = ![1สถานที่]
Debug.Print intValue1
End If
.MoveNext
Loop
End With

rst2.Close
dbs.Close
Set rst2 = Nothing
Set dbs = Nothing

End Sub

ให้คัดลอกโค้ดไปใช้ได้เลยครับ

ข้อแนะนำเพิ่มเติม ไม่ควรที่จะใช้ชื่อฟีลด์เป็นภาษาไทย เพราะจะทำให้เขียนโค้ดยากครับ
6 @R03152
ขอบพระคุณเป็นอย่างสูง
พอดีวันนี้ไม่ว่างแล้ว ถ้าว่างตอนไหนจะลองทำดูแล้วจะส่งข่าวมาเรียนให้ทราบอีกทีหนึ่ง ยังไม่ทราบว่าจะมีปัญหารื่อง Space ที่ติดมาในฟีลด์ด้วยหรือเปล่า
เพราะเป็นต้นฉบับของจริงมา ต้องมาแก้ไขเอาเอง
ขัอมูลทุกอย่างที่ทำต้องเป็นภาษาไทยทั้งหมด ยกเว้นส่วนที่ไม่ต้องโชว์
จึงจะใช้ภาษาอังกฤษ เป็นความจำเป็นอย่างหนึ่งในการทำงาน
ถึงอย่างไรก็ตามขอขอบพระคุณเป็นอย่างยิ่งมาณ.ที่นี้
และจะส่งข่าวมาเรียนให้ทราบอีกครั้งหนึ่ง
7 @R03180
ขอบพระคุณเป็นอย่างสูง ใช้ได้แล้วค่ะ ปัญหามีอยู่นิดหน่อยตรง เลขที่ 1 ชอบผิดอยู่เป็นประจำ
กลายเป็นเลขอะไรก็ไม่ทราบอยู่บ่อยๆ(ทำหลายไฟล์) ต้องคอยตรวจดู ตั้งชื่อ Moduleเอาไว้แล้ว
ทำครั้งหนึ่งก็มี Module ใหม่ขึ้นมาอีกอันหนึ่ง ทำ 10 ครั้งก็ขึ้นมา 10 อัน เต็มไปหมด
จะ delete ทิ้งไปได้ไหมคะ แล้วเวลาจะให้มันหยุดทำ จะทำตรงไหน เพราะทำตรงPause
ก็จะหยุดเพียงครั้งเดียว พอเปลี่ยนไฟล์ก็ทำอัตโนมัติใหม่ เราต้องการให้มันหยุดถาวรไปก่อน
สั่งให้ทำแล้วค่อยทำ เคยพบใครโง่แบบนี้บ่อยๆไหมคะ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.1475s