フォームにドラッグされた ActiveX コントロールを使用して、COM 経由で SAP に接続しています。VB6で私は書きます:
Private Sub Form_Terminate()
SAPBAPIControl.Connection.Logoff
End Sub
Private Sub SAPLogonControl_Click()
Set SAPBAPIControl.Connection = SAPLogonControl.NewConnection
SAPBAPIControl.Connection.Client = "100"
If SAPBAPIControl.Connection.Logon(0, False) Then
MsgBox SAPBAPIControl.Connection.IsConnected
End If
End Sub
VB.NET 2010 では、次のように記述します。
Public Class MainForm
Private Sub MainForm_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
AxSAPBAPIControl1.Connection.Logoff()
End Sub
Private Sub AxSAPLogonControl1_ClickEvent(sender As Object, e As System.EventArgs) Handles AxSAPLogonControl1.ClickEvent
AxSAPBAPIControl1.Connection = AxSAPLogonControl1.NewConnection()
AxSAPBAPIControl1.Connection.Client = "100"
If AxSAPBAPIControl1.Connection.Logon(0, False) Then
MsgBox(AxSAPBAPIControl1.Connection.IsConnected)
End If
End Sub
End Class
最終的には次のようになります。
Eine Ausnahme (erste Chance) des Typs "System.AccessViolationException" は、mscorlib.dll aufgetreten にあります。in .Client = "100"
VB6 は動作します。
接続オブジェクトをVB.NETの他のクラスに転送する方法を知っている人はいますか?
助けてくれてありがとう。