เราสามารถสร้างตัวแปร ขึ้นมาจากคำในข้อความได้หรือไม่


0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

18 เม.ย. 62 , 13:21:46
อ่าน 1765 ครั้ง

bgfc

จุดประสงค์เพื่อให้มีตัวแปรใหม่เกิดขึ้น โดยไม่ต้องแก้โปรแกรม 

เช่น 
  - เราประกาศให้ A เป็น string (dim A as string)
  - ให้ A = "BB"

  ต้องการให้เกิดตัวแปร BB เกิดขึ้น ที่ใช้เป็น variant   คือเก็บค่าใด ๆ ก็ได้     เพื่อชื่อตัวแปรที่เกิดขึ้นเปลี่ยนไปตาม ค่าของ A  คือให้เกิดตัวแปรระหว่าง run โปรแกรม     แบบนี้ทำได้ไหมครับ และหากทำได้ต้องทำอย่างไรครับ

 

18 เม.ย. 62 , 14:23:16
ตอบกลับ #1

sjs

มันคือ Arrays หรือเปล่าครับหรือ
https://docs.microsoft.com/en-us/office/vba/language/concepts/getting-started/using-arrays

 
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข, bgfc

18 เม.ย. 62 , 16:02:59
ตอบกลับ #2

สันติสุข

มันคือ Arrays หรือเปล่าครับหรือ
https://docs.microsoft.com/en-us/office/vba/language/concepts/getting-started/using-arrays

เพิ่มเติมว่า ควรจะใช้ dynamic array ที่เป็นของ User Defined Type ที่มี 2 element คือ element ของ string เพื่อเก็บชื่อที่ใช้อ้างอิง และ element ของ variant ที่เอาไว้เก็บค่า 

' การกำหนด Type ให้ใส่ไว้ในส่วนของ Module Declaration
Public Type DynamicVar
   Name As String
   Value As Variant
End Type

' การสร้าง element เพิ่มเติมให้ dynamic array  ให้ใส่ไว้ในส่วนของโค้ดที่ต้องการ
Dim DV( ) As DynamicVar
Dim N As Integer

N = Ubound(DV) + 1     ' หา element สูงสุดของ dynamic array
Redim Preserved DV(N)    ' สร้าง element เพิ่มเติม
DV(N).Name = "ชื่อที่ต้องการ"   ' ใส่ชื่อ
DV(N).Value = ค่าที่ต้องการ      ' ใส่ค่า

ส่วนตอนค้นหา ก็ไปวนอ่านเอาว่า DV ตัวที่เท่าไหร่ (X) ที่มี .Name เท่ากับชื่อที่ต้องการ ก็จะได้ค่าจาก DV(X).Value ครับ

« แก้ไขครั้งสุดท้าย: 19 เม.ย. 62 , 07:39:04 โดย สันติสุข »
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: sjs, bgfc


บอร์ดเรียนรู้ Access สำหรับคนไทย


 

Sitemap 1 2 3 4 5