MySQL


hugamann

Mitglied
Habe schon stunden damit verbracht in irgendwelchen Foren zu suchen und habe immer nur Müll gefunden.

Versuche aus einer MySQL DB etwas auszulesen.

Habe folgendes versucht.

Versuch 1
Code:
Private Sub Command1_Click()

Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
Dim count As Integer

conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" _
            & "SERVER=hugamann;" _
            & "DATABASE=datenbank;" _
            & "UID=hugamann;" _
            & "PWD=bugamann;" _
            & "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 16384

conn.CursorLocation = adUseClient
On Error GoTo ms
conn.Open

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
                
rs.Open "SELECT * FROM tabelle", conn, adOpenStatic, adLockOptimistic


rs.Filter = "feld ='" & Text1.Text & "'"
rs.Filter = "feld2 ='" & Text2.Text & "'"

count = rs.RecordCount

If count = 2 Then
MsgBox "Geht Super ! :) :) :) :)"

Else

MsgBox ("XX")

End If
Exit Sub

ms:

MsgBox "Keine Verbindung zum Internet gefunden"

End Sub



Das hat nicht geklappt.

Dann habe ich es mit folgendem versucht:

Code:
Private Sub Command1_Click()

Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
Dim count As Integer

conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" _
            & "SERVER=hugamann;" _
            & "DATABASE=datenbank;" _
            & "UID=hugamann;" _
            & "PWD=bugamann;" _
            & "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 16384

conn.CursorLocation = adUseClient
On Error GoTo ms
conn.Open

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
                
rs.Open "SELECT * FROM tabelle", conn, adOpenStatic, adLockOptimistic

rs!feld = Text1.Text
rs!feld2 = Text2.Text


count = rs.RecordCount

If count = 2 Then
MsgBox "Geht Super ! :) :) :) :)"

Else

MsgBox ("XX")

End If
Exit Sub

ms:

MsgBox "Keine Verbindung zum Internet gefunden"

End Sub


da sagt er mir nur:

rs.RecordCount = 0

hat jemand mal einen vernünftigen lösungsweg ohne auf irgendwelche links zu verweiden ?
 

wincnc

Erfahrenes Mitglied
Also ich öffne die Datenbank so:
Code:
Dim Conn As ADODB.Connection
Dim RS As ADODB.Recordset

Private Sub Form_Load()
Dim Serv As String
Dim Datab As String
Dim User As String
Dim Pass As String

Serv = "localhost" ' oder ein anderer Server
Datab = "DeinerDatenbank"
User = "User"
Pass = "DeinPasswort"

Set Conn = New ADODB.Connection
Conn.Provider = "MSDASQL"
Conn.Mode = adModeReadWrite
Conn.CursorLocation = adUseClient

Conn.Open "Driver={MySQL ODBC 3.51 Driver};Server=" & Serv & ";Database=" & Datab & ";", User, Pass

Set RS = New ADODB.Recordset
RS.CursorLocation = adUseClient
RS.Open "Select * FROM DeineTabelle", Conn, adOpenDynamic, adLockPessimistic
End Sub
Und benutze den neuesten Treiber:
http://dev.mysql.com/get/Downloads/...-2-win.msi/from/http://ftp.plusline.de/mysql/
 

hugamann

Mitglied
Ist zwar nett von dir für die mühe aber ich glaube du hast das prob nicht ganz verstanden.

Also ich kann sie öffnen. Kann lesen sowie schreiben.
Nur das Problem ergibt sich immer wenn ich sowas wie ein login machen will.

if user = pwd then

so in der art.

Das haben wir ja immer mit der filter funktion versucht.
Komischerweise ging der oben zuerst gepostete code mal.
Seit den neuen treibern allerdings nicht mehr.

denn immer wenn ich rs!feld2 = Text2.Text mache ist rs.RecordCount = 0
Müsste aber 1 sein.

Hat jemand da eine andere lösung wie ic einen gezielten datensatz auslesen kann ? bzw vergleuchen
 

spirit

Erfahrenes Mitglied
Warum amchst du nicht einfah z.b. ein

Code:
"SELECT USER,PASSWD FROM USERTABLE WHERE USER = 'TEXT1'"

Damit suchst du in deiner Datenbank UserTable erst einmal ob der User der in dem Textfeld angegeben ist existiert.

Dann kannst du doch mit "
Code:
if rs!deinrecordsetname[user] = text1 and rs!deinrecordsetname[passwd] = text2 then
Ereignis
else
fehlermeldung
end if
 

SyStemChaoS

Mitglied
Hey Leute!

Ich habe mir eben den Treiber von oben instelliert und ich habe den neusten SP für Visual Basic 6. Jetzt wollte ich mit dem Code den ich auf manchen Pages gefunden habe auf meine DB zugreifen (es ist fast der gleiche Code wie der vom Author des Themas). Nur bekomme ich immer gesagt, dass ADODB ein vom Benutzerdefiniert nicht definierter Typ ist.

Zum Projekt -> Standard.EXE
ActiveX-Steuerelement Aktualisieren -> Häckchen.

Irgendwas mach ich falsch ... was muss ich Includen/Verweisen ... und wo -.-?

Danke.
 

dignsag

Erfahrenes Mitglied
@ SyStemChaoS:

versuchs mal über "Extras >>> Verweise" und dann mach ein Häckchen vor
"Microsoft ActiveX Data Objects x.x Libary" (x.x steht für die Version)
 

SyStemChaoS

Mitglied
Danke für die schnelle Antwort aber ... Verweise unter Extras?

Ich habe mich mal weiter umgeschaut *g ... und habe es unter Projekt -> Verweise gefunden

Thx, alles geht nun. Nur mein Spaceanbieter erlaubt anscheinend keinen Zugriff auf die DB -.- ... mist.

Ciao.
 

Rainbow

Grünschnabel
Hallo, ich möchte ein ins VB geschriebenes Programm programmieren, dass eine MySQL Datenbank abfragt. Das Ganke klappt auch schon ganz toll, allerdings möchte ich das Programm auch an ein paar Freunde verteilen, die nicht die MySQL Treiber installieren sollen. Wie bekomme ich das hin ? Geht das überhaupt ? Und wenn nicht, welche Programmiersprache würdet ihr mir empfehlen ?

Vielen Dank schon mal im Vorraus und sorry für die vielen Fragen :D
 

Neue Beiträge

Forum-Statistiken

Themen
272.361
Beiträge
1.558.639
Mitglieder
187.834
Neuestes Mitglied
jordanx0206