IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Problème de transfert d'images(photos) de ORACLE vers ACCESS


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Problème de transfert d'images(photos) de ORACLE vers ACCESS
    Je veux transférer des informations (texte et image) dans une base de données ACCESS, à partir de données provenant d'une base de données ORACLE, dans une application VB6.
    Je crée les enregistrements dans ACCESS mais la photo n'est pas correcte.
    Dans ORACLE, le champ Photo est défini LongRaw
    Dans ACCESS, le champ Photo est défini Objet OLE
    Après création dans ACCESS, c'est inscrit Donnée binaire dans la donnée PHOTO et dans le formulaire, la photo ne s'affiche pas.
    Si je place la photo manuellement dans Access, c'est inscrit Image Bitmap dans la donnée PHOTO et la photo s'affiche dans le formulaire.

    AU SECOURS !
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     Dim db As Database
    Dim rstPhoto As dao.Recordset
    Set db = DBEngine.Workspaces(0).OpenDatabase("C:\MDB\Photo.mdb")
    Set rstPhoto = db.OpenRecordset("tabEmp", dbOpenTable)
    ...
    rstPhoto.Index = "PrimaryKey"
    rstPhoto.Seek "=", No
    If rstPhoto.NoMatch = True Then
    rstPhoto.AddNew
    rstPhoto("No") = mobjPhotos.GrRec.Rec.Fields("Numero").Value
    Else
    rstPhoto.Edit
    End If
    rstPhoto("PHOTO") = mobjPhotos.GrRec.Rec.Fields("Photo").Value
    rstPhoto.Update

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Si tu trouves comment extraire un LongRaw d'Oracle, ça m'intéresse.
    Je m'y suis déjà cassé les dents.

    N'étant pas un spécialiste d'Oracle, je me suis fait aider et il semblerait qu'il faille passer par une procédure (Oracle) de conversion.

    Même SqlPlus n'affiche qu'une lettre pour le contenu d'un LongRaw (qui, dans mon cas, contenait du texte).

    Ton problème étant spécifique à Access, je pense que tu aurais plus de chance sur le forum qui y est dédié.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    En VB, il a fallu que je crée un fichier à partir de la photo contenue dans le champ "PHE_Photo" de la table ORACLE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Sub Créer_Fichier(NomFichier As String)
     Dim stm As ADODB.Stream
     Set stm = New ADODB.Stream
     stm.Type = adTypeBinary
     stm.Open
     If IsNull(mobjPhotos.Fields("PHE_Photo").Value) Then GoTo Suite
     stm.Write mobjPhotos.GrRec.Rec.Fields("PHE_Photo").Value
     On Error Resume Next
     Kill NomFichier
     On Error GoTo 0
     stm.SaveToFile NomFichier
    Suite:
     stm.Close
     Set stm = Nothing
     Exit Sub
    End Sub
    ...
        NomFichier = "C:\Photos\NoDa_" & NoDa & ".jpg"
        Créer_Fichier NomFichier
    ...
    Ensuite dans Access, il a fallu importer la photo dans le champ OLE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Global Const OLE_CREATE_EMBED = 0
    Global Const OLE_CREATE_LINK = 1
    Global Const OLE_ACTIVATE = 7
    Global Const OLE_LINKED = 0
    Global Const OLE_EMBEDDED = 1
    ...
    Private Sub Ajout_Click()
     If IsNull(Me![Photo]) = False Then Exit Sub
     Me![Photo].OLETypeAllowed = OLE_EMBEDDED
     On Error GoTo PasDePhoto
     Me![Photo].SourceDoc = "C:\Photos\NoDa_" & Me.NoDa & ".jpg"
     Me![Photo].Action = OLE_CREATE_EMBED
     GoTo Suite
    PasDePhoto:
     Me![Photo].SourceDoc = "C:\Photos\PasDePhoto.jpg"
     Me![Photo].Action = OLE_CREATE_EMBED
    Suite:
     On Error GoTo 0
    End Sub
     
    Private Sub AjoutTous_Click()
     On Error GoTo Fin
     DoCmd.GoToRecord acDataForm, "frmPhoto", acFirst
     While 1 = 1
        Ajout_Click
        DoCmd.GoToRecord acDataForm, "frmPhoto", acNext
     Wend
    Fin:
     On Error GoTo 0
    End Sub

    La taille de la BD a considérablement augmentée mais on tenait à ce que les photos soient contenues dans la BD.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.2] Problème d'affichage des images/photo
    Par runcafre91 dans le forum Langage
    Réponses: 3
    Dernier message: 29/07/2012, 14h15
  2. [XL-2007] Transfert d'image d'une feuille vers userform
    Par maxval18 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/05/2012, 17h55
  3. problème de transfert d'image avec WCF?
    Par badridevelop dans le forum Services Web
    Réponses: 1
    Dernier message: 05/02/2011, 21h37
  4. transfert d'images (photos) de ORACLE vers ACCESS
    Par Loraine dans le forum Access
    Réponses: 1
    Dernier message: 03/10/2006, 20h33
  5. Traduire requête oracle vers access
    Par petitmic dans le forum Access
    Réponses: 1
    Dernier message: 27/09/2005, 18h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo