Archiv für die Kategorie ‘Visual Basic’

Excel VBA Auslesen eines kompletten Recordsets (CopyFromRecordset)

Mittwoch, 11. November 2009

was es nicht alles für schöne Funktionen in Excel gibt und ich kannte sie nicht :(

Ich habe immer mühsam meine Recordset mit einer Schleife ausgelesen was natürlich immer ewig gedauert hat.
Kommt natürlich auf die Menge der Datensätze an.

Aber es gib in Excel die Funktion CopyFromRecordset die ein Recordset mit einmal in Excel schreibt.

1
2
3
4
5
For iCols = 0 To .Fields.Count - 1
  Cells(1, iCols + 1).Value = .Fields(iCols).Name
Next
Range(Cells(1, 1), Cells(1, .Fields.Count)).Font.Bold = True
Range("A2").CopyFromRecordset rst

Und dann dauert es nur noch ein paar Sekunden und schupps sind die Daten da :)

VBA ListView Control zur Laufzeit zur Form hinzufügen

Dienstag, 25. August 2009

das war schon nicht so einfach den richtigen Namen für diese Control in VBA zu finden.
Man findet bei den Suchmaschinen Ergebnissen viele Hinweise wie man das ListView Control zur Laufzeit zur Form hinzufügen kann,
aber leider beschreiben die immer nur Visual Basic 6.0 oder VB.Net. Ich habe es trotzdem geschafft:P

1
2
3
4
5
6
7
8
9
10
11
12
    Set ListView1 = MainForm.Controls.Add("MSComctlLib.ListViewCtrl")
    With ListView1
        .Name = "ListView1"
        >.Top = 18
        .Left = 0
        .Width = 480
        .Height = 84
        .Visible = True
        .View = lvwReport
        .ColumnHeaders.Add , , "ID", 20
        .ColumnHeaders.Add , , "Feld", 20
    End With

Dann war mein nächstes Problem das ich nicht mehr per Code auf das Control zugreifen konnte weil es ja auch eigentlich nicht existiert :(
Aber das habe ich doch relative schnell gefunden. Einfach immer das letzte Control in den Form.Controls nehmen und fertig.

1
   MainForm.Controls(MainForm.Count -1)

Google Tags:

vba control hinzufügen zur laufzeit

VB6 boot.ini auslesen und timeout ändern

Mittwoch, 06. Mai 2009

Hallo mal was kleines neues ;)

Der Denis wollte mal sehen ob ich noch Programmieren kann :)
Und hat mich gebeten ein kleines Prog zu schrieben was die boot.ini einließt und den timeout Wert auf 0 setzt.

Hier der Code:

(weiterlesen…)

Excel 2003 VBA “Projekt oder Bibliothek nicht gefunden”

Montag, 06. April 2009

argh zwischendurch hasse ich Excel :(

Da schreibt man ein Macro in Excel 2007 und alles klappt wunderbar und nach 2 Monaten laufzeit ändern man eine kleinigkeit und auf einmal geht das Macro auf einmal nicht mehr.Aber nur bei allen Usern mit Excel 2003. Da kommt nur noch die Meldung: “Projekt oder Bibliothek nicht gefunden”

Es wurde einfach die Funktion Environ(“username”) angemeckert.
Und in dem angemeckerten Modul habe ich noch nicht einmal was geändert *komisch*
Wenn ich dann Environ(“username”) ausgeklammert habe hat er auf einmal die Funktion Date angemeckert *hahah* kla die gibt es auf einmal nicht mehr ;)

Die Lösung des Problems:

Ich hatte auf ein Klasse Verwiesen die es im Excel 2003 nicht gibt und somit kam es zu diesem Fehler.

Microsoft Excel 2003 VBA Timer

Mittwoch, 04. März 2009

Da wollte ich doch mal schnell eine UserForm in meine Excelmappe einfügen damit wenn sie startet ein Fenster aufgeht was sich nach 20 sekunden wieder schließt und eine Funktion ausführt.

Aber nix da! In Excel existiert das Timer werkzeug nicht :(
Noch mal schnell gegoogelt aber das richtig war nicht dabei also selbst was machen :)

Und ich finde mein ergebniss kann sich sehen lassen geht bestimmt 1000 mal besser aber so gehts auch :P

Code:
(weiterlesen…)

Visual ACL – Prog\Tool

Dienstag, 14. Oktober 2008

ich habe es endlich mal wieder geschafft  ein Programm zu entwickeln *juhu*

Name: VisualACL (Beta Version)

Beschreibung:
Das Programm ließt Berechtigungen von Ordneren aus.Aber natürlich nicht einfach so sondern Listet alle Benutzer und alle Gruppen mit deren Berechtigungen in 2 Listen auf.

Normalfallsieht man im Windows unter dem Eigenschaften Punkt Sicherheit nur die Gruppen die Zugriff haben aber nicht die Benutzer die sich in der Gruppe befinden.

Was das Tool so toll macht:
Es listet auch die Benutzer der Gruppen auf die man sonst in Windows nicht sieht. (Außer man schaut im Active Directory nach ;) )

Und man kann die Gruppen und Benutzer Rechte hinterher in ein Excel-Datei schreiben lassen.


Das Programm funktioniert nur in einer Domain. Ansonsten werden die Gruppen nicht aufgelöst.

Dowload VisualACL.rar Beta

screenshot

screenshot

ACL und ACE mit VB

Dienstag, 09. September 2008

Ich habe schon vor längerer Zeit von Denis die Aufgabe bekommen ein Programm zuschreiben was die Zugriffsberechtigungen eins Ordners ausließt.

Und ich habe es endlich hinbekommen, es geht mal wieder alles über die Super Schnittstelle “Windows Management Instrumentation (WMI)”


Set wmiFileSecSetting = GetObject( _
"winmgmts:Win32_LogicalFileSecuritySetting.path="_
"'C:\test")

RetVal = wmiFileSecSetting.GetSecurityDescriptor(wmiSecurityDescriptor)

If Err <> 0 Then
'Debug.Print "GetSecurityDescriptor failed"
Exit Function
Else
'Debug.Print "GetSecurityDescriptor succeeded"
End If

' Retrieve the DACL array of Win32_ACE objects.
DACL = wmiSecurityDescriptor.DACL

For Each wmiAce In DACL

' Get Win32_Trustee object from ACE
Debug.Print "Trustee Domain: " & wmiAce.Trustee.Domain
Debug.Print "Trustee Name: " & wmiAce.Trustee.Name
Debug.Print "Trustee AccessMask: " & wmiAce.AccessMask
Debug.Print "Trustee AceType: " & wmiAce.AceType

Next

Von Visual Basic (VB) in Microsoft Excel

Mittwoch, 20. August 2008

Mit diesem Problem musste ich mich schon sehr sehr oft rumschlagen.
Immer wieder kommt jemand an und möchte Reports oder Daten aus den Programmen in Excel geschrieben haben oder Daten sollen aus einer Excel Datei gelesen werden.

Und na kla habe ich dann auch gleich mal angefange herauszufinden wie das funktioniert und das klappt schon seit jahren immer gleich :)

Hier der Code:

(weiterlesen…)