Hallo an Alle,
ich Programiere (was man so programieren nennt) uns gerade eine Lizenzverwaltung.
Ausgangssituation:
Ich Stehe in der Tabelle 1 und erzeuge einen neuen Datensätz in einer zweiten Tabelle (Tabelle2). Diesen neuen Datensatz muss ich relational mit dem Datensatz in der Tabelle1 verknüpfen.
Mein Script arbeitet soweit gut, nur das auslesen der der DatensatzID in der Tabelle2
nicht sauber funktioniert!!
Frage 1:
Ich lese die Datensatz-ID in der Tabelle2 nach einem umschalten zwischen Listen- und Eingabemastkenansicht aus.
Sehr unschön!!!
Wie kann ich das verbessern???
Die Datensatz-ID muss doch auch schon früher existieren.
Frage 2:
Ich habe die Befürchtung, dass ich nicht mehr auf dem „Mutterdatensatz“ in der Tabele1 stehe. Wie kann ich diesen Datensatz geziehlt anspringen?
„Gehe zu Datendatz mit ID…“
Vielen Dank
Option Explicit
'Auslesen der Benutzerinformationen
Dim sErfuser
sErfuser = Crm.CurrentProject.CurrentUser
'Auslesen der FirmenRecordid
Dim sFirmenRecordid
sFirmenRecordid = Crm.CurrentProject.ActiveViews.ActiveView.CurrentRecordSet.CurrentRecordSynchronized.GetContentsByName(„CompanyID“)
'Auslesen der Person
Dim sPersonRecordid
sPersonRecordid = Crm.CurrentProject.ActiveViews.ActiveView.CurrentRecordSet.CurrentRecordSynchronized.GetContentsByName(„ContactID“)
'Auslesen der LizenzID
Dim sLizenzID
sLizenzID = Crm.CurrentProject.ActiveViews.ActiveView.CurrentRecordSet.CurrentRecordSynchronized.GetContentsByName(„ID“)
’ Name der konfigurierten Ansicht
Const sView = „MSA_Lizenzen“
’ Aktives cRM Projekt
Dim oProject, oListViewConfigs,oListView
Set oProject = cRM.CurrentProject
Set oListViewConfigs = oProject.ViewConfigs
Set oListView = oProject.ActiveViews
Dim oView
Set oView = oListViewConfigs.ItemByName(CStr(sView))
'MsgBox (sPersonRecordid)
'MsgBox (sFirmenRecordid)
'MsgBox (sLizenzID)
’ Prüfung Ansicht MSA_Lizenzen geöffnet
if CRM.CurrentProject.ActiveViews.ItemByName(„MSA_Lizenzen“) is nothing then
'Ansicht neu öffnen
cRM.CurrentProject.OpenNewViewByName(„MSA_Lizenzen“)
End if
’ Ansicht MSA_Lizenzen öffen
CRM.CurrentProject.ActiveViews.ItemByName(„MSA_Lizenzen“).Activate
’ Eingabemasken-Ansich öffen
CRM.CurrentProject.ActiveViews.ActiveView.ViewMode(1)
Dim oRecordSet
Set oRecordSet = oView.CreateRecordSet
’ Neuen Datensatz anlegen
Dim oRecord
Set oRecord = oRecordSet.NewRecord
cRM.CurrentProject.ActiveViews.ActiveView.Update
’ Datensatz sperren
oRecord.Lock
’ Firmen schreiben
oRecord.SetContentsByName CStr(„CompanyID“), CStr(sFirmenRecordid)
’ Kontakt schreiben
oRecord.SetContentsByName CStr(„ContactID“), CStr(sPersonRecordid)
’ Lizenz schreiben
oRecord.SetContentsByName CStr(„LizenzID“), CStr(sLizenzID)
’ Datensatz speichern und Schreibvorgang prüfen
If oRecord.Save = True Then
MsgBox CStr("Datensatz wurde geschrieben."), vbInformation, CStr("combit Relationship Manager")
Else
MsgBox CStr("Datensatz konnte nicht geschrieben werden!"), vbExclamation, CStr("combit Relationship Manager")
End If
’ Datensatz entsperren
oRecord.Unlock
’ Eingabemasken-Ansich öffen
CRM.CurrentProject.ActiveViews.ActiveView.ViewMode(2)
CRM.CurrentProject.ActiveViews.ActiveView.ViewMode(1)
’ Aktive Ansicht aktualisieren
cRM.CurrentProject.ActiveViews.ActiveView.Update