Connexion ODBC sous VB ! HELP !!!

cs_globule Messages postés 327 Date d'inscription mardi 8 octobre 2002 Statut Membre Dernière intervention 6 octobre 2010 - 11 mai 2006 à 15:47
cs_globule Messages postés 327 Date d'inscription mardi 8 octobre 2002 Statut Membre Dernière intervention 6 octobre 2010 - 11 mai 2006 à 19:09
Bonjour,

J'essaye de recuperer des informations dans une base Omnis
J'ai crée une connexion ODBC et j'arrive a lire me table dans Access
Pourtant lorsque j'essaye de lire la table directement a partir de VB, ca plante (l'editeur plante completement). Avez vous une idée. C'est une connexion Omnis

Mon FORM

Private Sub Command1_Click()


CONNEX_DB_CMD "select * from MaBase" ' fonctionne
CONNEX_DB_RS_CREATE ' fonctionne
MsgBox rs.Fields("MONCHAMP").Value ' <- PLANTE LE VB !!!!!!!!!!!!!!!!!!!
end sub

Module (recupéré sur VBFRANCE)

'====================================================================================='GLOBALES
'=====================================================================================
Option Explicit

Public cn As ADODB.Connection
Public rs As ADODB.Recordset
Public cmd As ADODB.Command

Public Sub CONNEX_DB_OPEN()


'------------- Ouvrir la Database ----------------
Set cn = New ADODB.Connection
'cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ibsmg.db;Persist Security Info=False"
cn.ConnectionString = "DSN=ODBC_OMNIS"
cn.Open



End Sub


Public Sub CONNEX_DB_CMD(SQL As String)


'-------------- Creer une Commande --------------
Set cmd = New ADODB.Command
cmd.CommandText = SQL
cmd.CommandType = adCmdText
cmd.CommandTimeout = 15
cmd.ActiveConnection = cn


End Sub


Public Sub CONNEX_DB_RS_CREATE()


'--------------- Creer un Recordset --------------------
Set rs = New ADODB.Recordset
Set rs.Source = cmd
rs.CursorType = adOpenStatic
rs.Open

End Sub


Public Sub CONNEX_DB_CLOSE()


' - Fermeture de la connexion
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
End Sub

2 réponses

cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
11 mai 2006 à 17:06
Bonjour,

deux chose peuvent le faire planter :
ton champs est un mémo ? ou la valeur est nulle ?

test : IF not isnull(rs.Fields("MONCHAMP")) then
msgbox rs.Fields("MONCHAMP").value
end if
-- Pourquoi faire simple quand on peut faire compliquer --
0
cs_globule Messages postés 327 Date d'inscription mardi 8 octobre 2002 Statut Membre Dernière intervention 6 octobre 2010
11 mai 2006 à 19:09
Non, c'est des que je fais une quelconque opération sur le recodset. Même in recordcount fait planter le VB, alors qu'avec Access, aucun problème
0
Rejoignez-nous