ค่า null กับ " "
กระทู้เก่าบอร์ด อ.Yeadram

 3,353   3
URL.หัวข้อ / URL
ค่า null กับ " "

รบกวนถามท่านผู้รู้คับ

ในตารางมีฟิลด์ชื่อ ID และ ssID
กำหนดให้ ID เป็น PK ; ssID จะใ่ส่หรือไม่ใส่ข้อมูลก็ได้(อนุญาตให้ว่าง)

เมื่อป้อนข้อมูลผ่านตารางใน access โดยตรง ป้อนข้อมูลในฟิลด์ ID และให้ ssID ว่างไว้
ปรากฏว่า ข้อมูลที่อยู่ในฟิลด์ ssID จะ้เป็นค่า null โดยอัตโนมัติ
แต่พอป้อนข้อมูลจากฟอร์มของ VB6 โดยป้อนเฉพาะฟิลด์ ID เช่นเดียวกัน ข้อมูลที่อยู่ในฟิลด์ ssID จะเป็นค่า " "

ทำให้เวลา SELECT ข้อมูล สามารถ SELECT ขึ้นมาได้แค่เร็คคอร์ดที่มีค่าเป็น null เพราะใช้ WHERE ssID is null
แต่ ข้อมูลในฟิลด์ ssID บางเร็คคอร์ดเป็น "" และบางเร็คคอร์ดเป็น null (เพราะป้อนข้อมูลจาก 2 ที่คือจาก access และจากฟอร์มของ vb) สลับกัน

ไม่ทราบว่าจะมีวิธีในการแก้ปัญหานี้อย่างไรบ้างคับ
รบกวนกรุณาแนะนำด้วยคับ
ขอบคุณคับ

********
ผมสร้าง db กับ access แล้วเขียนฟอร์มด้วย vb6 คับ

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

1 @R02275
ผมไม่ค่อยทราบเรื่องความแตกต่างของ access กับ VB เท่าไหร่ครับ จึงทำให้ไม่ทราบสาเหตุที่เป็นเช่นนั้น

แต่ขอเสนอวิธีแก้ไขครับ

ใช้ where ssID is null and ssid = " "

ดูน่ะครับ น่าจะได้ครับผม
2 @R02276
ถ้าป้อนผ่านฟอร์มของ VB6 เมื่อจะนำข้อมูลเข้าตารางใช้คำสั่ง run sql หรือเปล่าครับ
insert into....
ถ้าใช่ก็ต้องไปดูตรง sql statement ตัวนี้แหละครับ ว่าเราสร้าง statement ยังไง

sq = "Insert into table1(ID,ssID) values('" & txtID & "', "
if tx_ssID="" or isnull(tx_ssID) then
sq = sq & "Null"
else
sq = sq & "'" & tx_ssID.text & "'"
end if
sq = sq & ");"

คือให้ตรวจสอบก่อนว่า ค่าของ ssID บนฟอร์มมีอยู่หรือไม่ ถ้าไม่มีให้เขียนใน sql statement ด้วยคำว่า Null ตรงๆ ไปเลยครับ ข้อมูลใน Access จะได้มีรูปแบบที่เหมือนกัน
3 @R02277
ตั้งค่าเริ่มต้น ใน Form VB เป็น null
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2667s