Zum Einfügen von Oracle in VBA

January 18

Zum Einfügen von Oracle in VBA

Oracle-Objekttypen sind injizierbare in VBA oder Visual Basic für Applikationen erstellen funktionale Anwendungen, z. B. Kunden und Bestellungen, als Datenbankobjekte. Die Objekttypen von Oracle sind flexibler, weil sie mit komplexen Daten wie Audio, Bilder und Video arbeiten können. Ihr VBA-Projekt mit Oracle integriert ist nun auch kompatibel mit Java, PHP, SQL und PL/SQL, da Oracle-Objekte von diesen Programmiersprachen und Datenbankplattformen unterstützt werden.

Anweisungen

1 Downloaden Sie und installieren Sie die Microsoft Data Access Components, wenn Sie Visual Basic 5.0 verwenden. Oracle mit VBA, zwei ActiveX Data Objects oder ADO zu verbinden, werden die Elemente benötigt--eine Tabelle (Adooracle) und eine gespeicherte Prozedur (Adoinsert).

2 Geben Sie den folgenden Code zum Erstellen der Datentabelle genannt "Adooracle:"

CREATE TABLE Adooracle)

item_number NUMBER(3) PRIMARY KEY,

depot_number NUMBER(3));3

Fügen Sie folgenden Code zum Erstellen der Oracle-Prozedur namens "Adoinsert." Dieses Verfahren extrahiert Daten aus der Tabelle "Adooracle".

Adoinsert () oder Ersetzen der Prozedur erstellen

insnum IN NUMBER, outnum OUT NUMBER)

IS

BEGIN

INSERT INTO adooracle

(Item_Number, Depot_Number)

VALUES

(insnum, 16);

outnum := insnum/2;

END;

/4

Öffnen Sie ein neues Projekt in Visual Basic und fügen Sie einen "Verweis" auf die Microsoft ActiveX Data Objects-Bibliothek um Ihre Oracle-Prozedur zu implementieren. Geben Sie die folgenden Steuerelemente auf dem Formular:

Steuerelement--Label-Taste, Taste, geben Sie im Textfeld

Name--CmdCheck, CmdSend, TxtInput, lblInput

Beschriftungstext - Check, Send, Eingabe

5 Wählen Sie "Optionen" aus dem Menü Extras, klicken Sie auf die Option "Standard-volle Modulansicht" und klicken Sie auf "OK". Dies lässt Sie alle Ihre Projektcode anzeigen. Fügen Sie den folgenden Code in Ihre Code-Fenster für das Oracle-Projekt ausführen.

Option Explicit

Dim Cn As ADODB.Connection

Dim CPw1 As ADODB.Command

Dim CPw2 As ADODB.Command

Dim Rs As ADODB.Recordset

Dim Conn As String

Dim QSQL As String

Private Sub cmdCheck_Click()

CPw1(0) = Val(txtInput.Text)

Set Rs = CPw1.Execute

MsgBox "Item_Number = " & Rs(0) & ". Depot_Number = " & Rs(1) & "."

Rs.Close

End Sub

Private Sub cmdSend_Click()

CPw2(0) = Val(txtInput.Text)

CPw2.Execute

MsgBox "Return value from stored procedure is " & CPw2(1) & "."

End Sub

Private Sub Form_Load()

'You will need to replace the "*" with the appropriate values.

Conn = "UID=*****;PWD=****;DRIVER={Microsoft ODBC for Oracle};" _

& "SERVER=*****;"

Set Cn = New ADODB.Connection

With Cn

.ConnectionString = Conn

.CursorLocation = adUseClient

.Open

End With

QSQL = "Select Item_Number, Depot_Number From adooracle Where " _

& "item_number = ?"

Set CPw1 = New ADODB.Command

With CPw1

.ActiveConnection = Cn

.CommandText = QSQL

.CommandType = adCmdText

.Parameters.Append .CreateParameter(, adInteger, adParamInput)

End With

QSQL = "adoinsert"

Set CPw2 = New ADODB.Command

With CPw2

.ActiveConnection = Cn

.CommandText = QSQL

.CommandType = adCmdStoredProc

.Parameters.Append .CreateParameter(, adInteger, adParamInput)

.Parameters.Append .CreateParameter(, adDouble, adParamOutput)

End With

End Sub

Private Sub Form_Unload(Cancel As Integer)

Cn.Close

Set Cn = Nothing

Set CPw1 = Nothing

Set CPw2 = Nothing

End Sub

Tipps & Warnungen

  • Verwenden Sie "Verfahren", die Ausgabeparameter und nicht "Funktionen" beim Arbeiten mit Oracle und ADO-Parameter haben. Funktionen werden für andere Programmieren Technologien wie Java und AJAX verwendet.