History:
In microsoft access a primary key is an index with name PRIMARYKEY (one word)
How to remove:
1 2 |
CurrentDb.Execute "DROP INDEX PRIMARYKEY ON [table-name]" CurrentDb.Execute "ALTER TABLE [table-name] DROP [key-name]" |
In microsoft access a primary key is an index with name PRIMARYKEY (one word)
1 2 |
CurrentDb.Execute "DROP INDEX PRIMARYKEY ON [table-name]" CurrentDb.Execute "ALTER TABLE [table-name] DROP [key-name]" |
Sometimes you will get a problem if you want to add a data entry to a recordset, it can be done without the need of inserting the data entry to the table.
It is a little bit tricky but with a union statement you can do following:
your normal statement looks like:
1 |
select Field1,Field2 from tableName; |
and if you want to add a entry without insert then you can union like:
1 |
select Field1,Field2 from tableName union select '*' as Field1, 'All' as Field2 from tableName; |
Problem:
Die Aggregatsfunktionen (z.B. Min, Max usw.) einer in dieser Aktualisierungsabfrage eingebundenen Auswahlabfrage verhindern das ausführen.
Lösung:
Nachbauen der benötigten Funktion in VBA. Hier mit dem Beispiel Min.
Code:
Public Function eMin(strField As String, strTblOrQry As String) As Double
eMin = DMin(strField, strTblOrQry)
End Function
Verwendung:
In Abfrage wie folgt verwenden:
– erst das Feld in Anführungszeichen maskiert und dann die Tabelle oder Abfrage, dass ganze dann mit Semikolon getrennt
Am Beispiel des Date and Time Pickers (Kalendersteuerelement bekannt aus Access).
Dieses recht populäre Steuerelement hat in der Sammlung des MSCOMCT2.OCX Active X Steuerelemente (ausgeliefert als Visual Basic Runtime Extended Files) in bestimmten Versionen ein Problem:
Problem:
Die problemhaften Versionen dieses Steuerelement beinhalteten eine schwere Sicherheitslücke und wurde deshalb von Microsoft mit einem sogenannten Killbit im System deaktiviert.
http://technet.microsoft.com/de-de/security/bulletin/ms08-070
http://support.microsoft.com/kb/957924/de
explizit hier die Version: Mscomct2.ocx 6.1.98.16 659264 3/24/2009 15: 52
Lösung:
1:
Aktualisierung auf eine unproblematische Version so fern in Zukunft möglich ). Wenn die Version aktualisiert wurde durch manuelles ersetzen. Muss die neue Version dem System bekannt gemacht werden:
Windows 7:
cd C:WindowsSysWOW64
regsvr32 mscomct2.ocx
2:
Oder aber man geht das Sicherheitsrisiko ein und aktiviert das Steuerelement gezielt über die Registry wieder:
1. Download der acm.exe unter http://www.nirsoft.net/utils/acm.html
2. Öffnen der ACM.EXE mit Administrationsrechten
3. Suche der CLSID {20DD1B9E-87C4-11D1-8BE3-0000F8754DA1} or mscomctl2.ocx bzw. Date and Time Picker mit STRG+F
4. Rechtsklick und Enable
Mit der Zeit oder nach der Installation von neuen Programmen merkt man, dass ein Office Produkt langsamer geworden ist. Es kann auch sein das ein Office Produkt sich merkwürdig verhält, z.B. bei Word nach jedem getippten Buchstaben eine Sanduhr folgt.
Woran liegt das?
Wie in meinem Blog bereits behandelt gibt es Addin, Common Addins, VBA Makros um die Funktionalität eines Offices Produkts oder eines Dokuments zu erweitern / automatisieren.
Jetzt stellen wir uns vor das alle diese Erweiterungen in dem Office Produkt die selben Objekte und Events verwenden.
Daraus resultiert z.B. das ein Change Event beim Tippen eines Textes Alle die auf Veränderungen reagieren wollen benachrichtigt, so dass Alle nacheinander oder manchmal sogar überschneidend abarbeiten.
Mögliche Resultate:
Es erscheint eine Sand Uhr nach jeder Eingabe oder aber es dauert ewig bis wieder etwas „passiert“.
Im schlimmsten Fall stürzt das Office Produkt einfach ab und das Dokument was man bearbeitet hat ist entweder ganz weg (nicht gespeichert) oder zumindest kaputt.
Lösungsansätze:
– Addins und Common Addins nacheinander deaktivieren
– Templates (aus dem entstehen alle neuen Dokumente) des Office Produkts auf dessen Größe (Idealfall unter 1 MB) prüfen Bsp. Windows 7 unter:
%userprofile%AppDataRoamingMicrosoftTemplatesNormal.dot
– wenn die Größe der Templates durch Autotexte im Word oder Makros sowie durch die hauseigenen Automatismen des jeweiligen Offices Produkts explodiert sind, kann man diese Template Dateien zum Test einfach umbenennen, so dass beim nächsten Start des Programms eine neue leichte Template Datei erzeugt wird
– die Größe und der Zustand der Template Datei kann unter Umständen auch zu Abstürzen und Fehlverhalten führen
Fehlermeldungen:
Objektvariable oder With-Blockvariable nicht festgelegt
Objekt nicht gefunden
Behebungsvariante:
Sub Beispiel()
Dim objBeispiel As Object
Set objBeispiel = Nothing
If objBeispiel Is Nothing Then MsgBox („“)
End Sub