-
Xuất giá trị từ các Text Box ra file TXT
k3nzyyb > 04-01-16, 06:48 PM
Các bác cho em hỏi có cách nào xuất giá trị từ các textbox ra file txt theo điều kiện không ạ?
VD: Em nhập 50 vào ô giữ lại số lượng trong From sau
Thì nó sẽ xuất ra file .txt nội dung có dạng:
Trích dẫn:loaiA=310, loaiB=680, loaiC=90
Lấy giá trị gốc trừ đi số lượng muốn giữ lại ra giá trị cần export. Bác nào giúp em với ạ, e đang rất cần
File ví dụ đây ạ, bác nào code vào đây luôn giúp em thì càng tốt, em xin cảm ơn
http://www.fshare.vn/file/CBA93EHY4FIX -
RE: Xuất giá trị từ các Text Box ra file TXT
ongke0711 > 04-01-16, 09:35 PM
Cách làm này của tôi chỉ xuất nhưng gì hiển thị trên textbox trên form, không xuất dữ liệu từ table hay query của form.
Share với bạn 2 kiểu xuất: Excel và Txt.
- Tạo thêm 1 textbox dùng để lưu cái chuỗi tổng hợp như bạn yêu cầu [txtTongHop].
- Viết 2 cái Sub, XuatExcel và writeText (dùng FileSystemObject). Code như bên dưới.
Mã PHP:Sub XuatExcel()
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application")
With xlApp
.Workbooks.Add 'Open ("D:\TestFile.xlsx")'
.Sheets("Sheet1").Select
.Range("A1") = Me.txtTongHop.Value
.Visible = True
'.ActiveWorkbook.Close True'
End With
Set xlApp = Nothing
End Sub
Sub writeText(strText As String)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Dim fso, MyFile, FileName, TextLine
Set fso = CreateObject("Scripting.FileSystemObject")
'Duong dan file .txt se xuat ra'
FileName = "D:\TestFile.txt"
Set MyFile = fso.OpenTextFile(FileName, 2, True, -1) '-1: Unicode; 0: ASCII; -2: System default'
MyFile.WriteLine strText
MyFile.Close
End Sub
Sub TongHopChuoi()
Dim strText As String
strText = Me.Label2.Caption & Me.Text1 - Me.Text8 & ", "
strText = strText & Me.Label4.Caption & Me.Text2 - Me.Text8 & ", "
strText = strText & Me.Label6.Caption & Me.Text3 - Me.Text8
Me.txtTongHop = strText
End Sub
Private Sub cmdXuatExcel_Click()
Call TongHopChuoi
Call XuatExcel
End Sub
Private Sub cmdXuatTxt_Click()
Call TongHopChuoi
Call writeText(Me.txtTongHop.Value)
End Sub
File demo: http://www.mediafire.com/download/lo1xg9...T%29.accdb -
RE: Xuất giá trị từ các Text Box ra file TXT
k3nzyyb > 05-01-16, 11:35 AM
Cho mình hỏi thêm với ongke0711 ơi, VD như số textbox mình muốn xuất là mấy chục cái thì phải làm như nào. Chứ viết từng cái strText như thế này thì dài quá. Có cách nào viết vòng lặp For được không? Ví dụ như này:
Mình không trình bày được ra code, mong bạn giúp đỡMã PHP:Sub TongHopChuoi()
For i=0 to 70
strText[i] = Me.Label[i].Caption & Me.Text[i] - Me.Text8 & ", "
....
Me.txtTongHop = strText
End Sub -
RE: Xuất giá trị từ các Text Box ra file TXT
ongke0711 > 05-01-16, 11:58 AM
Nếu nhiều vậy thì đưa dữ liệu vô table rồi xuất cho nhanh bạn. -
RE: Xuất giá trị từ các Text Box ra file TXT
k3nzyyb > 05-01-16, 02:55 PM
(05-01-16, 11:58 AM)ongke0711 Đã viết: Nếu nhiều vậy thì đưa dữ liệu vô table rồi xuất cho nhanh bạn.
Thực ra như trong ví dụ kia mình load dữ liệu từ table ra mà bạn, trong table có nhiều bản ghi cùng loại hàng : A, B, C... Ở form mình load chúng ra tổng lại, giờ xuất ra txt lại phải lưu lại thì có nhiều bước quá không? -
RE: Xuất giá trị từ các Text Box ra file TXT
ongke0711 > 05-01-16, 03:11 PM
Bạn dùng table tạm đi. Sau khi nhập SL giữa lại -> query ra table tạm rồi xuất. -
RE: Xuất giá trị từ các Text Box ra file TXT
k3nzyyb > 05-01-16, 05:11 PM
Như bạn nói thì phải thao tác lưu trên bảng ah bạn? Mình muốn vẫn thao tác trên form đó có còn cách nào nữa ko bạn? Mong bạn chỉ giáo, mình ko học căn bản mà toàn mò từ cái này qua cái kia nên ko biết làm thế nào? -
RE: Xuất giá trị từ các Text Box ra file TXT
ongke0711 > 05-01-16, 10:59 PM
Để tạo table tạm "tblTemp" bạn dùng 2 cái query:
- qryTaotblTemp: tạo table với các dòng [Loai] đã sum số lượng và thêm 1 cột [SLGiuLai] có trị = 0.
- qryUpdateSLGiuLai: cập nhật vào cột [SLGiuLai] của tblTemp số lượng lấy từ form Test.
Sau đó viết code cho Sub TongHopChuoi () như sau:
Mã PHP:Sub TongHopChuoi()
Dim strText As String
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("tblTemp", dbOpenDynaset)
rst.MoveFirst
strText = ""
With rst
Do Until rst.EOF
strText = strText & "Loai " & !Loai & " = " & !SLGiuLai & ", "
.MoveNext
Loop
End With
strText = Left(strText, Len(strText) - 2)
Me.txtTongHop = strText
End Sub
Khi chạy, bạn chạy lần lượt qryTaotblTemp -> qryUpdate -> TongHopChuoi () -> Xuat text.
File demo: http://www.mediafire.com/download/lo1xg9...T%29.accdb -
RE: Xuất giá trị từ các Text Box ra file TXT
k3nzyyb > 06-01-16, 12:15 PM
(05-01-16, 10:59 PM)ongke0711 Đã viết: Để tạo table tạm "tblTemp" bạn dùng 2 cái query:
- qryTaotblTemp: tạo table với các dòng [Loai] đã sum số lượng và thêm 1 cột [SLGiuLai] có trị = 0.
- qryUpdateSLGiuLai: cập nhật vào cột [SLGiuLai] của tblTemp số lượng lấy từ form Test.
Sau đó viết code cho Sub TongHopChuoi () như sau:
Mã PHP:Sub TongHopChuoi()
Dim strText As String
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("tblTemp", dbOpenDynaset)
rst.MoveFirst
strText = ""
With rst
Do Until rst.EOF
strText = strText & "Loai " & !Loai & " = " & !SLGiuLai & ", "
.MoveNext
Loop
End With
strText = Left(strText, Len(strText) - 2)
Me.txtTongHop = strText
End Sub
Khi chạy, bạn chạy lần lượt qryTaotblTemp -> qryUpdate -> TongHopChuoi () -> Xuat text.
File demo: http://www.mediafire.com/download/lo1xg9...T%29.accdb
Cảm ơn bạn nhiều, mình đã làm được rồi
Sửa lại 1 chút chỗ strText phải là :
Số lượng - SL Giữ lại = SL để xuất raMã:strText = strText & "Loai " & !Loai & " = " & !SSL - !SLGiuLai & ", "
1 lần nữa cảm ơn bạn nhiều ^^