Hej!VB i Word
Det är så att jag har en faktura mall som vi har gjort till en kund. På denna mall har vi en knapp som heter spara. Funktionen är så att när kunden har öppnat sin word faktura mall och klickar på spara. Så skall dokumentet gå till en angiven mapp. Loopa igenom alla filer i mappen och hitta det senaste numret (Filerna får faknr som namn). Ta detta nummer plussa på 1 och sedan spara numret och visa det sista numret i ett textfält. Detta nummer skall sedan finnas kvar nästa gång han öppna fakturamallen. Dvs mallen skall alltid innehålla det senaste numret.
här är koden för detta:
<code>
Private Sub cmdSaveDok_Click()
Dim newName As String
Dim maxVal As Integer
Dim dirVal As Integer
Dim pStr As String
Dim nVal As Integer
Dim MyPath As String
Dim MyName As String
'MyPath = "\\JOHAN\Takman Dokument\Fakturor\"
MyPath = "C:\Temp\"
maxVal = 0
MyName = Dir(MyPath, vbNormal)
'Kör loopen
Do While MyName <> ""
If MyName <> "." And MyName <> ".." Then
If (GetAttr(MyPath & MyName) And vbNormal) = vbNormal Then
'Sorterar ut siffrorna i filnamnet och sparar undan dem
If IsNumeric(Left(MyName, Len(MyName) - 4)) Then
dirVal = CInt(Left(MyName, Len(MyName) - 4))
If dirVal > maxVal Then maxVal = dirVal
End If
End If
End If
MyName = Dir
Loop
'Plussar på ett
If maxVal = 0 Then
nVal = 10000
Else
nVal = maxVal + 1
End If
'Sparar dokumentet
newName = MyPath & CStr(nVal) & ".doc"
ThisDocument.TextBox1.Text = CStr(nVal)
ThisDocument.SaveAs newName
MsgBox ("Dokument " & newName & " är sparat.")
End Sub
</code>
Mitt problem är att senste numret inte visas i Texbox1. När man debuggar så finns det ett värde där men inte visuelt på sidan har det ändrats
Hur gör jag för att mallen helatiden skall innehålla i text1 den senast numret.
Jag har provat med att köra en kod när dokumentet öppnas med koden
<code>
MyPath = "C:\Temp\"
maxVal = 0
MyName = Dir(MyPath, vbNormal)
Do While MyName <> ""
If MyName <> "." And MyName <> ".." Then
If (GetAttr(MyPath & MyName) And vbNormal) = vbNormal Then
If IsNumeric(Left(MyName, Len(MyName) - 4)) Then
dirVal = CInt(Left(MyName, Len(MyName) - 4))
If dirVal > maxVal Then maxVal = dirVal
End If
End If
End If
MyName = Dir
Loop
If maxVal = 0 Then
nVal = 10000
Else
nVal = maxVal + 1
End If
ThisDocument.TextBox1.Text = nVal
</code>
men jag får det inte att fungera....dvs när sidan öppnas skall den hämta sista numret och visa det. När kunde sedan sparar skall mallen komma ihåg det senaste numret och visa detta nästa gång man skall fakturerar
Någon som har förslag på lösning
/Tyronne