Access Workshop 2011

  • Upload
    saeran

  • View
    19

  • Download
    0

Embed Size (px)

DESCRIPTION

Access Workshop 2011. Datenbanken fürs Nirwana Stefan Zink, November 2011. Themen dieser Präsentation. Druckerverwaltung Add-Ins und Verweise Updates verteilen (Frontend) Update des Backend (Strukturänderung) Lizenzierung, Softwareschutz, pay per use - PowerPoint PPT Presentation

Citation preview

  • Access Workshop 2011Datenbanken frs Nirwana

    Stefan Zink, November 2011

  • Themen dieser PrsentationDruckerverwaltungAdd-Ins und VerweiseUpdates verteilen (Frontend)Update des Backend (Strukturnderung)Lizenzierung, Softwareschutz, pay per useAnbindung an 2nd-Party-Produkt (Wenn die Zeit reicht)

  • Zunchst ein paar Bilder um auf das Thema einzustimmen

    (Projekte auf die ich stolz bin, was ich also wirklich kann)

  • Barcode-DruckerCitizen-Thermo-Transfer_DruckerDymo-Labelwriter

  • AnforderungenDruck muss mit einem Klick funktionierenSystem muss erkennen ob und welcher Drucker angeschlossen istDruckeranbindung kann lokal oder ber Netzwerk seinFunktionen mssen auch in MDE funktionieren

  • ZaehlerDym = 0ZaehlerCit = 0StrDymo = "Dymo"StrCitiz = "Citiz"

    For Each prtloop In Application.Printers StrPrtName = prtloop.DeviceName If InStr(1, StrPrtName, StrDymo) Then Me.Kmb_DruckerSelect.AddItem prtloop.DeviceName ZaehlerDym = ZaehlerDym + 1 Else If InStr(1, StrPrtName, StrCitiz) Then Me.Kmb_DruckerSelect.AddItem prtloop.DeviceName ZaehlerCit = ZaehlerCit + 1 End If End IfVerfgbare Dymo- und Citizen-Drucker suchen

  • Dim stDocName As String Dim a As String

    P_StrAktuelleArtikelNr = Me.Artikelnummer a = Me.Kmb_DruckerSelect Select Case True Case a Like "*Dymo*" Application.Printer = Application.Printers(a) stDocName = "Ber_Lageretiketten" DoCmd.OpenReport stDocName, acViewNormal Set Application.Printer = Nothing Case a Like "*Citi*" Application.Printer = Application.Printers(a) stDocName = "Ber_LagerEtikettCitizien" DoCmd.OpenReport stDocName, acViewNormal Set Application.Printer = Nothing Case Else MsgBox ("Kein Drucker ausgewhlt!") End Select

  • Sonst noch zu beachten:Solange der entsprechende Bericht bearbeitet wird muss der zugehrige Drucker als Standard ausgewhlt sein!

  • Und Ausserdem:Beim jeweiligen Drucker muss unbedingt das eingelegte Papierformat auch eingestellt sein!

  • Add Ins und Verweise???

  • Version beachten!

  • Add-Ins / VerweiseEntwicklung unter Office 2007 im Format 2002 zwar mglich, aber nach MDE-Erstellung luft es nicht mehr unter 2002MDE-Erstellung unbedingt unter 2002Speziell bei T-BarCode nur gleiche Versionen einsetzen

  • Update des Frontend???

  • AnforderungenAutomatischer Download von WWWAutomatische Verteilung im NetzBenutzereingriffe reduzierenZuverlssige Ausfhrung in allen UmgebungenUnkomplizierte Umsetzung

  • Erster AnsatzDBUpdate.exe von Gunter Avenius (www.avenius.de)Vorteile:- einfach zu bedienen, schnell, effektiv und viele MglichkeitenNachteile:- Unter Windows 7 nicht einsetzbar da Schreibrechte in Windows-Verzeichnis notwendig (meines Wissens!)

  • Bessere LsungenProjekt noch nicht umgesetzt!Im Moment verarbeite ich viele einzelne Lsungsanstze, mit freundlicher Hilfe von - Thomas Mller - Dirk Eberhardt - und vielen anderen. Danke.

  • Update des Backend???

  • AnforderungenIm Lauf der Weiterentwicklung wird sicher das BE erweitert, wie geht das?Es muss eine automatisierte Update-Routine herDie Update-Routine muss kumulierend sein, man wei ja nie welches Update der Kunde wirklich einspieltVersionsvergleich zwischen FE und BE

  • Die LsungLsung fr die Techniken- DAO- ADO- SQLhttp://www.kulpa-online.com/assets/files/tutorials/strukturaenderung.pdf

  • Die einzelnen Schritte.

  • Versions-Tabelle im BE

  • Routine fr VersionsvergleichDim MaxAW_BE As IntegerDim MaxAW_FE As Integer

    'Aktuelle Version des Frontend auslesenMaxAW_FE = DMax("VFE_Autowert", "Tbl_VersionFE")MaxAW_BE = DMax("fAutoWert", "Tbl_VersionDaten")

    P_StrAktuelleVersion = DMax("VFE_Version", "Tbl_VersionFE", "VFE_Autowert =" & MaxAW_FE)P_StrBenoetigteVersionDaten = DLookup("VFE_MindVersBE", "Tbl_VersionFE", "VFE_Autowert =" & MaxAW_FE)

    'Aktuelle Version des Backend aussuchenP_StrAktuelleVersionDaten = DLookup("VER_Version", "Tbl_VersionDaten", "fAutoWert =" & MaxAW_BE)'Abgleichen ob die MMC_Daten.mdb auf den richtigen Stand hatIf VersChange(P_StrAktuelleVersionDaten, P_StrBenoetigteVersionDaten) = True ThenMsgBox ("Die Aktuelle Version der MMC-Daten ist veraltet." & vbCrLf & _ "Aktuelle Version: " & P_StrAktuelleVersionDaten & vbCrLf & _ "Bentige Version: " & P_StrBenoetigteVersionDaten & vbCrLf & _ "Das Programm wird beendet. Bitte spielen Sie das aktuelle Update ein."), _ vbOKOnly + vbCritical, "Achtung! Falsche Version" DoCmd.QuitEnd If

  • VersionsvergleichFunction VersChange(ByVal Vers1 As String, ByVal Vers2 As String) As BooleanDim var1 As Variant, var2 As Variant, i As Integer var1 = Split(Vers1, ".") var2 = Split(Vers2, ".") For i = 0 To 2 If CLng(var2(i)) > CLng(var1(i)) Then VersChange = True Exit For ElseIf CLng(var2(i)) < CLng(var1(i)) Then VersChange = False ' Zeile verzichtbar durch Vorbelegung der Variablen mit False Exit For End If Next iEnd Function

  • Beispiel Felder hinzufgen'Neues Feld anlegen inkl. aller Abfragen:'Existiert Tabelle?'Existiert Feld?'Sonst: Tabelle anlegenPublic Function NeuesFeldAnfgen(Str_Table As String, Str_Field As String, Str_FeldType As DAO.DataTypeEnum, Optional Lng_FieldSize As Long = 0) As Boolean

    'prfen ob die Tabelle vorhanden istIf TableExistsDAO(P_db, Str_Table) = False Then'sonst erstellenDAO_CreatedNewTable P_db, Str_TableEnd If'prfen ob Feld exisitertIf DAO_FieldExists(P_db, Str_Table, Str_Field) = False Then'sonst erstellenDAO_CreateField P_db, Str_Table, Str_Field, Str_FeldType, Lng_FieldSizeEnd If

    Exit Function

    End Function

  • Kopierschutz und Lizenzierung???

  • AnforderungenSoftwarenutzung muss bezahlt werdenWeitergabe der Datenbank muss so schwer wie mglich seinBezahlung pro ArbeisplatzMehrfachanmeldung an Terminalserver muss mglich seinKosten mssen berschaubar sein

  • Meine gewhlte Lsung:Hardware-Dongle

  • BesonderheitenLieferant: Fa. SG-Intec in KielKosten: ab 19,00 EUR Netto / Stck.Einfach zu handelnohne Installation (Plug and Play) (nur 1 DLL in System32 Verzeichnis)Sehr sicher und ZuverlssigAusbaustufen einfach LizenzierbarGigantische Variationsmglichkeiten

  • Wichtig bei Access-DB:Ganz zu beginn muss eine Globale Variable mit den Wert False gesetzt werden, diese darf sich erst ndern wenn wirklich alle Bedingungen der Dongle-Prfung erfolgt sind.Access ist nmlich sehr Fehlertolerant, ein Fehlen der notwendigen DLL wrde mit einer Rge kommentiert, aber die Prozedur wrde fortgesetzt, mit der Konsequenz dass das Programm startet obwohl kein Dongle angeschlossen ist.

  • Weitere VorteileEs gibt auch Dongle mit integrierter Uhr, damit kann im Dongle ein Ablaufdatum definiert werden (Da liegen die Kosten aber bei rund 50 EUR / Stck )Es knnen auch Werte in das Dongle geschrieben werden (z.B. Personalisierung)Durch Produkt-ID sind verschiedene Ausbaustufen aktivierbarDurch WELTWEIT eindeutige Seriennummer sind weitere Zuordnungen mglich

  • Anbindung an vorhandene Systeme???

  • Meine ErkenntnisIch habe es fr`s erste gelassen!Wenn dann Datenbernahme per ImportAber auch das ist kritischEs bleibt vorerst bei einer Insellsung

  • E N D E! (Danke.)Und hier dann mein nchstes Projekt: