给你一个我写的例子,仔细看看吧: Private Sub mTxtToTempDo() Dim intJobNo As Long Dim strJobNo As String Dim blnJobDo As Boolean Dim strDoNo As String Dim strProdNo As String Dim strPRODVER As String Dim strBALANCE As String Dim intBALANCE As Double Dim intACTQTY As Double Dim strACTQTY As String Dim strYY As String Dim strMM As String Dim strDD As String Dim strHH As String Dim strMN As String Dim strSS As String Dim count As Integer
Dim strACTDATETIME As String Dim strPcNo As String Dim strHTNO As String Dim strType As String Dim strsql As String Dim strTemp As String Dim strFile As String Dim strLine As String Dim intFileNum As Integer Dim intrecord As Long
Dim dblBalance As Double Dim i As Integer Dim intdata As Integer
Dim strSql1 As String Dim objCmd As New ADODB.Command ' Call gdbconnect ginttempnumber = 0 intrecord = 0
strFile = App.path & "\PcNo.txt" intFileNum = FreeFile() Open strFile For Input As #intFileNum Do Until EOF(intFileNum) Line Input #intFileNum, strLine strPcNo = Trim(Mid(strLine, 1, 3)) Loop Close #intFileNum
strFile = gHTDataPath & "\result.txt"
intFileNum = FreeFile() Open strFile For Input As #intFileNum Do Until EOF(intFileNum) intrecord = intrecord + 1 Line Input #intFileNum, strLine Loop Close #intFileNum
Open strFile For Input As #intFileNum Do Until EOF(intFileNum) prgUploading.Max = intrecord
strProdNo = Trim$(Mid(strLine, 21, 30)) If Len(strProdNo) = 0 Then strProdNo = " " End If
strPRODVER = Trim$(Mid(strLine, 51, 1)) If Len(strPRODVER) = 0 Then strPRODVER = " " End If strBALANCE = Trim$(Mid(strLine, 52, 12)) If Len(strBALANCE) = 0 Then strBALANCE = "0" End If
intBALANCE = CDbl(strBALANCE)
strACTQTY = Trim$(Mid(strLine, 64, 12)) If Len(strACTQTY) = 0 Then strACTQTY = "0" End If intACTQTY = CDbl(strACTQTY)
If Trim(strYY) = "" And Trim(strMM) = "" And Trim(strDD) = "" And Trim(strHH) = "" And Trim(strMN) = "" And Trim(strSS) = "" Then strACTDATETIME = " Null" End If strHTNO = Trim$(Mid(strLine, 90, 3)) If Len(strHTNO) = 0 Then strHTNO = " " End If strType = Trim$(Mid(strLine, 93, 1)) If Len(strType) = 0 Then strType = " " End If
你的两个问题,核心和关键都在如何分离出你所需的字串。 我编了两个,以供参考: 1) Private Function sel_strB(string1 As String) As String Dim i, begin, ends, longs As Byte For i = 1 To Len(string1) If Mid(string1, i, 1) = "|" Then begin = ends + 1 ends = i longs = longs + 1 If longs >= 2 Then GoTo founds 'if >=3 then 取C列.... End If Next i founds: ends = ends - begin sel_strB = Mid(string1, begin, ends) End Function2) Private Function mymids(strings As String, begin As Byte, ends As Byte) As String mymids = Mid(strings, begin, ends - begin + 1) End Function
不知道如何用代码去实现文本的导入并且去更新相应的字段,是否可以有个
大概的代码段呢?
excel编辑当然可以,只是有些繁琐,且灵活性不够。因为想做个界面,
以上所需的代码在后台运行。
另,我如何给答复都分数啊?是否是系统自动自动加分呢?
Private Sub mTxtToTempDo()
Dim intJobNo As Long
Dim strJobNo As String
Dim blnJobDo As Boolean
Dim strDoNo As String
Dim strProdNo As String
Dim strPRODVER As String
Dim strBALANCE As String
Dim intBALANCE As Double
Dim intACTQTY As Double
Dim strACTQTY As String Dim strYY As String
Dim strMM As String
Dim strDD As String
Dim strHH As String
Dim strMN As String
Dim strSS As String Dim count As Integer
Dim strACTDATETIME As String
Dim strPcNo As String
Dim strHTNO As String
Dim strType As String Dim strsql As String
Dim strTemp As String
Dim strFile As String
Dim strLine As String
Dim intFileNum As Integer
Dim intrecord As Long
Dim dblBalance As Double Dim i As Integer
Dim intdata As Integer
Dim strSql1 As String Dim objCmd As New ADODB.Command
' Call gdbconnect
ginttempnumber = 0
intrecord = 0
strFile = App.path & "\PcNo.txt" intFileNum = FreeFile() Open strFile For Input As #intFileNum Do Until EOF(intFileNum) Line Input #intFileNum, strLine strPcNo = Trim(Mid(strLine, 1, 3))
Loop
Close #intFileNum
strFile = gHTDataPath & "\result.txt"
intFileNum = FreeFile()
Open strFile For Input As #intFileNum
Do Until EOF(intFileNum)
intrecord = intrecord + 1
Line Input #intFileNum, strLine
Loop
Close #intFileNum
Open strFile For Input As #intFileNum
Do Until EOF(intFileNum)
prgUploading.Max = intrecord
Line Input #intFileNum, strLine
strJobNo = Trim$(Mid(strLine, 1, 10))
intJobNo = CLng(strJobNo)
strDoNo = Trim$(Mid(strLine, 11, 10))
strProdNo = Trim$(Mid(strLine, 21, 30))
If Len(strProdNo) = 0 Then
strProdNo = " "
End If
strPRODVER = Trim$(Mid(strLine, 51, 1))
If Len(strPRODVER) = 0 Then
strPRODVER = " "
End If
strBALANCE = Trim$(Mid(strLine, 52, 12))
If Len(strBALANCE) = 0 Then
strBALANCE = "0"
End If
intBALANCE = CDbl(strBALANCE)
strACTQTY = Trim$(Mid(strLine, 64, 12))
If Len(strACTQTY) = 0 Then
strACTQTY = "0"
End If
intACTQTY = CDbl(strACTQTY)
strYY = Mid(strLine, 76, 4)
strMM = Mid(strLine, 80, 2)
strDD = Mid(strLine, 82, 2)
strHH = Mid(strLine, 84, 2)
strMN = Mid(strLine, 86, 2)
strSS = Mid(strLine, 88, 2)
strACTDATETIME = "'" & strYY & "-" & strMM & "-" & strDD & " " & strHH & ":" & strMN & ":" & strSS & "'"
If Trim(strYY) = "" And Trim(strMM) = "" And Trim(strDD) = "" And Trim(strHH) = "" And Trim(strMN) = "" And Trim(strSS) = "" Then
strACTDATETIME = " Null"
End If
strHTNO = Trim$(Mid(strLine, 90, 3))
If Len(strHTNO) = 0 Then
strHTNO = " "
End If
strType = Trim$(Mid(strLine, 93, 1))
If Len(strType) = 0 Then
strType = " "
End If
strsql = "insert into tempDO(JobNo,DoNo,ProdNo,ProdVer,Balance,ActQty,ActDatetime,HtNo,PcNo,Type,flag,Ndatetime,Udatetime,isValid) values(" & intJobNo & ",'" & strDoNo & "','" & strProdNo & "','" & strPRODVER & "'," & intBALANCE & "," & intACTQTY & "," & strACTDATETIME & ",'" & strHTNO & "','" & strPcNo & "','" & strType & "','0','" & Date & "','" & Date & "','0')"
objCmd.CommandType = adCmdText
objCmd.ActiveConnection = gobjdbcn
objCmd.CommandTimeout = 300
objCmd.CommandText = strsql
' rsResult.CursorLocation = adUseServer
' rsResult.CursorType = adOpenForwardOnly
' rsResult.LockType = adLockReadOnly
Debug.Print strsql
objCmd.Execute
ginttempnumber = ginttempnumber + 1
prgUploading.Value = ginttempnumber
Loop
Close #intFileNum
再请教各位有没有其它的方法了呢?
再次感谢wurf0(wurf)一定给您加分。================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]
我编了两个,以供参考:
1)
Private Function sel_strB(string1 As String) As String
Dim i, begin, ends, longs As Byte
For i = 1 To Len(string1)
If Mid(string1, i, 1) = "|" Then
begin = ends + 1
ends = i
longs = longs + 1
If longs >= 2 Then GoTo founds 'if >=3 then 取C列....
End If
Next i
founds:
ends = ends - begin
sel_strB = Mid(string1, begin, ends)
End Function2)
Private Function mymids(strings As String, begin As Byte, ends As Byte) As String
mymids = Mid(strings, begin, ends - begin + 1)
End Function