|
อยากจะสอบถามเกี่ยวกับการ export file to text file
|
Topic by |
Message
Posted : on : 16/7/2555 17:57:19
|
jommann
|
อยากจะสอบถามเกี่ยวกับการ export file จากการ query ให้ export ออกมาเป็น txt file ที่ส่ง bank ได้
ลักษณะ ข้อมูลใน field ต่าง ๆ ติดกันหมดเลย เป็น reccord ๆ ไป อ่ะครับ พอจะมีตัวอย่างมั้ยครับ
|
|
|
12 Reply in this Topic. Dispaly 1 pages and you are on page number 1
Reply by |
Message
on : 17/7/2555 9:09:01
|
Un (R13342)
|
ก็ทำข้อมูลลงใน Query ให้ได้ตามโครงสร้างที่เราต้องการก่อน
ตรงช่วงที่จะให้เป็นช่องว่างก็ใส่ Space(ใส่ตัวเลขจำนวนช่องว่าง)
Save Query แล้วไปคลิ๊กขวาที่ Query ส่งออกเป็น Text File
ลองเลือกตัวเลือกต่างๆ ดูนะครับ
|
Back to Top |
|
|
Reply by |
Message
on : 17/7/2555 10:16:19
|
jommann (R13343)
|
ผมลองทำตามวิธีที่แนะนำแล้วอ่ะครับ แต่ผลลัพท์ที่ออกมัน จะมี double quote และcomma ติดมาด้วย ต้องการจะลบ ทั้งสองตัวออก ต้องเขียนยังงัยเหรอครับผมใช้ code
Private Sub btnReport_Click()
On Error GoTo Err_Handler
Dim strPath As String
strPath = InputBox("Enter file path", , "C:\sbank.txt")
If Len(strPath) = 0 Then Exit Sub
DoCmd.TransferText acExportDelim, , "qryReportTextfile", strPath
MsgBox "Done", vbInformation
Exit_Handler:
Exit Sub
Err_Handler:
MsgBox Err.Description, vbExclamation, "Error No: " & Err.Number
Resume Exit_Handler
End Sub
นี้อ่ะครับ รบกวนด้วยน่ะครับ ด่วนได้จะเยี่ยมเลยครับ เพราะต้องส่งงานวันนี้แล้ว
|
Back to Top |
|
|
Reply by |
Message
on : 17/7/2555 11:54:07
|
yeadram (R13347)
|
Sub Txxxxxx()
dim conn as new adodb.connection
dim rs as new adodb.recordset
dim sq as string
dim i, j as integer
set conn = currentproject.connecion
rs.open "qryReportTextfile", conn, 1
if not rs.eof then
rs.movelast
rs.movefirst
j = rs.fields.count-1
open "C:\sbank.txt" for output as #1
do while not rs.eof
sq = ""
for i = 0 to j
sq= sq & rs(i)
next
Print #1, sq
rs.movenext
loop
close #1
end if
rs.close
set rs= nothing
set conn = nothing
end sub
|
Back to Top |
|
|
Reply by |
Message
on : 17/7/2555 15:51:14
|
jommann (R13349)
|
ผมลองเอามาใส่ แล้ว มันขึ้นว่า "label error อ่ะครับ มันเกิดอะไรเหรอครับ
|
Back to Top |
|
|
Reply by |
Message
on : 17/7/2555 16:05:57
|
jommann (R13350)
|
ขณะนี้ผม พยายามทำ มันออกมาได้เป็นลักษณะนี้แหละครับ
output :
999000 666 0 0 0 11650 111100000 2850 Brendon Moar อ่ะครับ
เป้าหมายอยากจะได้เป็นแบบนี้อ่ะครับ
9990006660001165011100002850xxxx ประมานี้อ่ะครับ
โค้ดที่ผมใช้
Private Sub btnReport_Click()
On Error GoTo Err_Handler
Dim strPath As String
strPath = InputBox("Enter file path", , "C:\sbank.txt")
If Len(strPath) = 0 Then Exit Sub
DoCmd.TransferText acExportDelim, "qryReportTextfile Export Specification", "qryReportTextfile", strPath
MsgBox "Done", vbInformation
Exit_Handler:
Exit Sub
Err_Handler:
MsgBox Err.Description, vbExclamation, "Error No: " & Err.Number
Resume Exit_Handler
End Sub
จะสามารถแก้ไข ส่วนไหนได้บ้างครับเพื่อให้เป็นไปตามเป้าหมายอ่ะครับ ตอนนี้มึนตึบหมดแหละครับ
|
Back to Top |
|
|
Reply by |
Message
on : 17/7/2555 17:55:32
|
yeadram (R13352)
|
คุณคัดลอกตัวที่ผมให้ไป ไปวางในโมดูลว่างๆ
เอาพ้อยเตอร์ของเม้าส์ วางในบริเวณ sub ดังกล่าว แล้วกดปุ่ม F5
ถ้ามันทำงานได้เป็นปกติ มันจะแว๊บเดียวหายเลย ไปตรวจดูใน ไดรฟ C ได้เลยครับ
ถ้ามัน Error บรรทัดไหน บอกด้วยครับ ว่าบรรทัดไหน
ผมเขียนสด หน้าเว็บนี่เลย ไม่ได้ทดสอบใดๆ ทั้งสิ้น แต่เท่าที่ย้อนดู ไม่น่าจะมีอะไรผิดปรกตินะครับ หรือผมดูไม่ทั่วถึงพอ ลองบอกมาหน่อยว่า บรรทัดไหนติด
อ้อ อีกอย่าง ถ้าอยากประยุกต์ใส่ในปุ่มง่ายๆ ก็ อย่าเอาหัว sub กับ ท้าย sub ไป เอาทั้งหมดเลย ไปวางแทนทุกๆ บรรทัดใน sub command ของคุณนั่นแหละครับ
|
Back to Top |
|
|
Reply by |
Message
on : 18/7/2555 9:43:36
|
jommann (R13362)
|
ทดสอบแล้วครับ มันขึ้น error ว่า
Run-time error '438'
Object doesnt support this property or method
และพอผมกด debug มันจะไปแสดง ที่ บรรทัด
set conn = currentproject.connecion
ครับ ถ้าเป็นแบบนี้ มีวิธีแก้ยังงัยบ้างครับ
|
Back to Top |
|
|
Reply by |
Message
on : 18/7/2555 10:20:11
|
yeadram (R13363)
|
พิมพ์ใหม่ครับ ตก ตัว t ไปตัวหนึ่ง
คำว่า connection
|
Back to Top |
|
|
Reply by |
Message
on : 18/7/2555 10:46:45
|
jommann (R13365)
|
สุโค่ย ๆๆๆๆๆ ได้แหละครับ ขอบคุณมากครับ ไม่ได้ คุณ yeadram ชีวิตอาจดับได้ครับ
รบกวนอีกนิดนึงครับ ถ้าเรา ต้องการจะใส่ 0 ใน
999000 666 0 0 0 11650 111100000 2850 Brendon Moar อ่ะครับ
เลขศูนย์หลัง 666 เพิ่มอีก 10 หลักอ่ะครับ ผมจะเพิ่มในส่วนไหนได้บ้างครับ ผม query แล้ว มัน exp1 ได้แค่ หลักเดียวอ่ะครับ
|
Back to Top |
|
|
Reply by |
Message
on : 18/7/2555 12:08:08
|
yeadram (R13366)
|
ฟิลด์ 666 ของคุณเป็นฟิลด์ลำดับที่เท่าไหร่ (นับฟิลด์แรกเริ่มจาก 0)
สมมติว่าเป็นฟิลด์ 1 ก็แล้วกัน ก็แก้เป็น
do while not rs.eof
sq = ""
for i = 0 to j
sq= sq & rs(i)
if i = 1 then sq = sq & "0000000000" ' เพิ่มบรรทัดนี้เข้ามาครับ
next
|
Back to Top |
|
|
Reply by |
Message
on : 18/7/2555 13:53:40
|
jommann (R13367)
|
ได้แล้วครับ เป็นไปตามที่ต้องการเลยครับ
ขอบคุณมากครับ
|
Back to Top |
|
|
Reply by |
Message
on : 23/7/2555 14:13:15
|
jommann (R13413)
|
ต่ออีก 1 คำถามครับ ผมใส่ code เหล่านี้ใน vb access 2003 เรียกรันได้ปกติ แต่พอเป็น 2007 มันไม่ effect ใด ๆ เลยครับ มีวิธีการเรียกใช้ ยังงัยบ้างครับ
|
Back to Top |
|
|
|
Sorry, you can NOT post a reply.
|
|