Page 1 sur 1

Créer une collection à partir d'une autre base

MessagePublié: 22 Jan 2010 à 10:07
par FredB
Bonjour,

figurez-vous que, depuis une base X, je souhaite créer une collection de doc à partir d'une vue d'une base Y.
Et que j'y arrive pas !

Ce que j'ai tenté avec un Getview

Dim db1 As New NotesDatabase("Server","MaJolieBaseY.nsf")

Dim view As NotesView
Dim docCol As NotesDocumentCollection
Set view = db1.GetView( "Belle vue" )
Set docCol = view.GetAllDocumentsByKey( "Fred" )


Et çà me renvoie le fameux Object variable not set.

Une idée, une suggestion ?
[/b]

réflex immédiait à ce genre de de message :
1/ mettre une procédure de gestion d'erreur dans laquelle on fera apparaitre le n° de ligne (varial réservée erl)
2/ et identifier le comportement des objets et leur contenu : ne pas oublier le debugger et voir l'onglet où il y a les variables

quand on a fait cela.... c'est plus simple pour la correctiion

MessagePublié: 22 Jan 2010 à 10:34
par stloje
le fait d'instancier l'objet NotesDatabase n'est pas suffisant pour ouvrir la base. Utilise plutôt le méthode Open et fait une vérification par la suite pour savoir si la base est ouverte.

Ex.
Code : Tout sélectionner
dim db1 as NotesDatabase
call db1.Open ("Serveur", "NomBase")
if db1.IsOpen = false then
    msgbox "Impossible d'ouvrir la base"
    exit sub
end if

MessagePublié: 22 Jan 2010 à 10:59
par FredB
Merci stloje

Hélas l'autre base ne s'ouvre pas avec le code que tu proposes..... 'Object variable not set' sur db1.Open

MessagePublié: 22 Jan 2010 à 11:00
par Michael DELIQUE
salut

regarde ce tips, il devrait t'aider => http://forum.dominoarea.org/connexion-a ... 10712.html

MessagePublié: 22 Jan 2010 à 11:03
par stloje
j'ai pas de poste dev actuellement et je donne du code à l'aveugle. J'ai oublié d'instancier db1 au départ.

Le code devrait être comme ceci :
Code : Tout sélectionner
dim db1 as new NotesDatabase ("", "")
call db1.Open ("Serveur", "NomBase")
if db1.IsOpen = false then
    msgbox "Impossible d'ouvrir la base"
    exit sub
end if

MessagePublié: 22 Jan 2010 à 11:43
par FredB
Ok merci à tous les 2 j'vais puiser dans vos propositions sise-dessous.

MessagePublié: 22 Jan 2010 à 12:09
par billbock
Code : Tout sélectionner
Function verificationbaseWithoutDoc(serveur As String,chemin As String) As notesdatabase
   '   cle : permet de faire un look up ds une vue
   Dim dbconn As notesdatabase
   Set dbconn = New NotesDatabase(serveur,chemin)
   If Not dbconn.IsOpen Then
      Set verificationbaseWithoutDoc =  Nothing
      Exit Function
   End If
   Set verificationbaseWithoutDoc =  dbconn
End Function

MessagePublié: 22 Jan 2010 à 12:45
par Michael DELIQUE
salut billbock

le isopen n'est malheureusement pas fiable a 100%

pour ma part j'utilise cette fonction => http://forum.dominoarea.org/detecter-la ... 10711.html

MessagePublié: 22 Jan 2010 à 13:57
par stloje
Michael DELIQUE a écrit:salut billbock

le isopen n'est malheureusement pas fiable a 100%

pour ma part j'utilise cette fonction => http://forum.dominoarea.org/detecter-la ... 10711.html


A bien y penser, tu as raison Michael. Une base peut être ouverte sans qu'on puisse y accéder à cause de la LCA

MessagePublié: 22 Jan 2010 à 14:42
par billbock
oui la fonction DBExists est tres bien
la mienne je l'utilise surtout dans des agents planifies avec un signataire qui à les droits qui vont bien

MessagePublié: 25 Jan 2010 à 17:17
par oguruma
réflex immédiait à ce genre de de message :
1/ mettre une procédure de gestion d'erreur dans laquelle on fera apparaitre le n° de ligne (varial réservée erl)
2/ et identifier le comportement des objets et leur contenu : ne pas oublier le debugger et voir l'onglet où il y a les variables

quand on a fait cela.... c'est plus simple pour la correctiion

MessagePublié: 03 Fév 2010 à 14:46
par FredB
oguruma
>> réflex immédiait à ce genre de de message :
1/ mettre une procédure de gestion d'erreur dans laquelle on fera apparaitre le n° de ligne (varial réservée erl)
2/ et identifier le comportement des objets et leur contenu : ne pas oublier le debugger et voir l'onglet où il y a les variables

Oui merci de ces conseils, en fait j'ai oublié de préciser que l'erreur est déclenchée sur la méthode GetAllDocumentsByKey

MessagePublié: 03 Fév 2010 à 15:25
par stloje
Tu as remarqué si la vue est bien instanciée?

MessagePublié: 03 Fév 2010 à 15:37
par FredB
Oui !! c'est bien çà stloje
Y a un pb de ce coté......

MessagePublié: 03 Fév 2010 à 15:40
par stloje
Vérifie si le nom de la vue que tu veux accéder est bien orthographié.

Le plus simple est d'utiliser le synonyme plutôt que le nom de la vue.