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.