Schamann.net

…děláme vJeci jinak…

You are currently browsing the Visual Basic category.

Práce s FSO

Otevřít všechny soubory v zadaném adresáři a zkopirovat vybrany obsah do .txt souboru: (procedura z GPS)

Dim iCisloSouboru As Integer
Dim sText As String
Dim ts As TextStream
Dim iStart As Integer
Dim sFile As String
Dim sCisloSIM As String
Dim vFile
Dim vFolder As Folder
Dim vFile1
On Error GoTo GenerovaniHistorie_Error
iCisloSouboru = FreeFile
sCisloSIM = InputBox(„Vlož číslo sim pro generování historie“, „Generování Historie“, „773400“)
‚    CommonDialog.DialogTitle = „Vyber soubor“
‚    CommonDialog.Filter = „*.txt“
‚    CommonDialog.ShowOpen
‚    sFile = CommonDialog.FileName
Set vFolder = mdl_objFSO.GetFolder(„e:/logs/odpovidac/zaloha/“)
Set vFile = vFolder.Files
For Each vFile1 In vFile
Set ts = mdl_objFSO.OpenTextFile(vFile1, ForReading)
Do
sText = ts.ReadLine
If InStr(sText, „&REPORT,000003“) Then
Open App.Path & „\Data\“ & sCisloSIM & „.txt“ For Append As #iCisloSouboru
Write #iCisloSouboru, sText
Close #iCisloSouboru
Open App.Path & „\Data\“ & sCisloSIM & „data.txt“ For Append As #iCisloSouboru
iStart = InStr(sText, „&REPORT,000003“)
Write #iCisloSouboru, Mid(sText, iStart)
Close #iCisloSouboru
End If
Loop Until ts.AtEndOfStream
ts.Close
Set ts = Nothing
Next

Dim iCisloSouboru As Integer

Dim sText As String

Dim ts As TextStream

Dim iStart As Integer

Dim sFile As String

Dim sCisloSIM As String

Dim vFile

Dim vFolder As Folder

Dim vFile1

iCisloSouboru = FreeFile

sCisloSIM = InputBox(„Vlož číslo sim pro generování historie“, „Generování Historie“, „773400“)

Set vFolder = mdl_objFSO.GetFolder(„e:/logs/odpovidac/zaloha/“)

Set vFile = vFolder.Files

For Each vFile1 In vFile

Set ts = mdl_objFSO.OpenTextFile(vFile1, ForReading)

Do

sText = ts.ReadLine

If InStr(sText, „&REPORT,000003“) Then

Open App.Path & „\Data\“ & sCisloSIM & „.txt“ For Append As #iCisloSouboru

Write #iCisloSouboru, sText

Close #iCisloSouboru

End If

Loop Until ts.AtEndOfStream

ts.Close

Set ts = Nothing

Next

Posted 9 years, 1 month ago at 14:40.

Add a comment

Unexpected error

Při kompilaci se těsně před zapsáním .exe souboru vyskytla chyba „unexpected error“.

Chybu jsem odstranil postupným odebíráním části projektu jsem objevil chybný ctl.
Jeho odstraněním se problém vyřešil.

Chybu způsobil:
Class DHTMLEDLibCtl.DHTMLEdit

Pravděpodobně změnou konfigurace při aktualizaci prohlížeče IE.

Posted 9 years, 1 month ago at 19:01.

Add a comment

Redim vícerozměrného pole

Při pokusu o ReDim nebo ReDim Preserve u vícerozměrného pole toto nelze použít na jinou než poslední část pole.

tedy:

Dim Pole()  ‚Projde

ReDim Pole (10,10)  ‚Projde

Redim Pole(10,15)  ‚Projde

ReDim Pole(15,15) ‚Err 9 – Subscript out of range

Řešení je pouze jedno a to:

Erase Pole

ReDim Pole(15,15)

… a znovu naplnění celého pole.

Při použití menšího čísla než je současné dojde ke ztrátě dat!

Redim Pole(14,14) ‚Projde, ale ztratí se data z pozice (15,0) – (15,15) a zaroveň všechny na pozici (x,15)

Posted 9 years, 2 months ago at 00:47.

Add a comment

ieframe.dll – nefunguje po přeinstalaci Win.

Po nové instalaci Windows se může stát že původní projekt obsahující reference na ieframe.dll nebude fungovat.

Objeví se Hláška e Error:

‘ieframe\1′ dll not found

Problém je zde:‘ MS Internet Control‘ v Project-> Component.

Oprava je nasledující:

1, Otevřít projekt a ignorovat vsechny chyby

2, Odstranit control z formulářů kde se nachází Browser.

3, Uložit projekt

4, Otevřít projekt

5, Odstranit reference Microsoft Internet Control

6, Odstranit Component Microsoft Internet Control

7, Uložit projekt

8, Otevřít projekt

9, Přidat referenci C:\WINDOWS\system32\ieframe.dll

10, Přidat Component Microsoft Internet Control

11, Uložit projekt

12, Otevřít projekt

13, Vložit do formulářů control Browser a nazvatje stejnými jmény jako byly.

14, Uložit a vše by mělo být OK.

Posted 9 years, 4 months ago at 12:53.

Add a comment

NULL – Jak to vložit do databáze?

V běžném recordsetu připojeném na MySQL pravděpodobně nelze vložit standartním postupem hodnotu NULL do políčka v databázi. Standartní postup považuji přes DataEnvironment.
Příklad:

Set rs = DataEnvironment1.rsVolnyPrikaz
DataEnvironment1.VolnyPrikaz
With rs
If Not IsNull(.Fields(„ZPRACOVANO“).Value) Then
.Fields(„ZPRACOVANO“).Value = sNull
.Update
End If
End With

Na řádku .Update  vždy skončí chybou.
Nelze ani:

Set .Fields(„ZPRACOVANO“).Value = Null

Nebo jsem alespon žádný jiný způsob nenašel.
Pro zápis hodnoty NULL lze ale použít běžný SQL zápis UPDATE:

Set rs = DataEnvironment1.rsVolnyPrikaz
DataEnvironment1.Commands.Item(„VolnyPrikaz“).CommandText = „UPDATE Tabulka SET `ZPRACOVANO` = NULL“
DataEnvironment1.VolnyPrikaz
Set rs2 = Nothing

Takto vše funguje jak má a hodnota Null se zapiše do tabulky databáze bez chyby.
Pokud někdo zná nějaký způsob jak zapsat Null do DB pomocí DataEnvironment – SEM S NÍM 🙂

Posted 9 years, 4 months ago at 19:52.

Add a comment