VB vs Database

Tags:    visual-basic

User
Bruger #661 @ 12.01.02 16:47
Hej Alle

Der skulle vel ikke en der kunne hjælpe med hvilken kommandoer man skal bruge når man skal sende en post fra en VB applikation og til en database. Jeg kunne forstille mig at jeg har nogle tekstfelter i en formular i VB og disse skal sendes til en database ved hjælp af en SQL sætning.

Hilsen Mickey



2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
<quote>
Det letteste er...med/uden SQL.
</quote>

Ja, jeg besvarer lige mit eget indlæg. Jeg har lavet en lille demo for at illustrere, hvordan du kan få forbindelse med en MS Access database. Her er projektet:


<pre>Type=Exe
Reference=*\\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\\..\\SYSTEM\\STDOLE2.TLB#OLE Automation
Reference=*\\G{00025E01-0000-0000-C000-000000000046}#4.0#0#..\\..\\..\\PROGRAMMER\\FæLLES FILER\\MICROSOFT SHARED\\DAO\\DAO350.DLL#Microsoft DAO 3.5 Object Library
Form=frmVBDB.frm
Startup="frmVBDB"
Command32=""
Name="Project1"
HelpContextID="0"
CompatibleMode="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0
CompilationType=0
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
ThreadPerObject=0
MaxNumberOfThreads=1</pre>


Siden kommer der en Form:


<pre>VERSION 5.00
Begin VB.Form frmVBDB
BorderStyle = 3 'Fixed Dialog
Caption = "Form1"
ClientHeight = 1350
ClientLeft = 45
ClientTop = 330
ClientWidth = 3510
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 1350
ScaleWidth = 3510
ShowInTaskbar = 0 'False
StartUpPosition = 3 'Windows Default
Begin VB.CommandButton btnAddToDB
Caption = "&Tilføj Person..."
Height = 375
Left = 1800
TabIndex = 4
ToolTipText = "Tilføjer navn til DB"
Top = 840
Width = 1575
End
Begin VB.TextBox txtEfternavn
Height = 285
Left = 1800
TabIndex = 3
Top = 480
Width = 1575
End
Begin VB.TextBox txtFornavn
Height = 285
Left = 1800
TabIndex = 1
Top = 120
Width = 1575
End
Begin VB.Label Label2
Alignment = 1 'Right Justify
Caption = "&Efternavn:"
Height = 255
Left = 120
TabIndex = 2
Top = 480
Width = 1575
End
Begin VB.Label Label1
Alignment = 1 'Right Justify
Caption = "&Fornavn:"
Height = 255
Left = 120
TabIndex = 0
Top = 120
Width = 1575
End
End
Attribute VB_Name = "frmVBDB"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private Sub btnAddToDB_Click()

' VI ANTAGER, AT databasen hedder "minDB.mdb",
' ligger sammen med dette program, og har en tabel,
' der hedder "Personer".

Dim db As Database
Dim rs As Recordset

Set db = OpenDatabase(App.Path & "\\minDB.mdb")
Set rs = db.OpenRecordset("Personer")


' VI GÅR OGSÅ ud fra, at der er 3 felter i
' "Personer"-tabellen; ID, Fornavn, og Efternavn.
' "ID" feltet er "Autonummer", så den passer sig
' selv. De to andre felter er tekstfelter i
' tabellen.

Dim strFornavn As String
Dim strEfternavn As String

Let strFornavn = txtFornavn.Text
Let strEfternavn = txtEfternavn.Text


' NU GØR VI klar til at tilføje en ny post,
' definerer de nye værdier, og opdaterer (gemmer)
' endelig den nye post i databasen.

rs.AddNew ' gør klar
rs.Fields("fornavn") = strFornavn ' sæt felter...
rs.Fields("efternavn") = strEfternavn
rs.Update ' opdater database


' HER LUKKES TABELLEN og databasen ned.

rs.Close
db.Close
Set rs = Nothing
Set db = Nothing

End Sub</pre>


Dette skulle give dig en idé om, hvordan <b>DAO</b> (Data Access Objects) virker. Hvis du har DAO 3.5 (som eksemplet bruger), kan du kun snakke med Access 97 og tidligere databaser. Hvis du skal have kontakt med en Access 2000 database, skal du bruge MS DAO 3.6 i stedet for version 3.5 -- version 3.6 kan også snakke med Access 97 og ældre.

For at se om du har DAO installeret, går du ind i <b>Project</b> menuen i VB og klikker på <b>References</b> kommandoen. I listen, der kommer frem, kan du se hvilke versioner, du har.

Du kan også bruge <b>ADO</b> til at "connecte" til en Access database, og da ADO er nyere end DAO, kan det være du vil bruge den teknologi istedet. Endelig findes der en meget ældre og meget standard måde kaldet ODBC. Du kan søge lidt rund på nettet efter nøgleord som "DAO", "ADO", "ODBC".

Håber dette hjælper dig videre.



<quote>Hej Alle

Der skulle vel ikke en der kunne hjælpe med hvilken kommandoer man skal bruge når man skal sende en post fra en VB applikation og til en database. Jeg kunne forstille mig at jeg har nogle tekstfelter i en formular i VB og disse skal sendes til en database ved hjælp af en SQL sætning.

Hilsen Mickey</quote>

Det letteste er, hvis du bruger en Microsoft Access database. Gør du det? For i så fald behøver vi ikke at rode med ODBC eller noget andet, men kan (relativt let) få VB til at arbejde sammen med en database med/uden SQL.




t