Page 1 sur 1
Créer une collection à partir d'une autre base

Publié:
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

Publié:
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

Publié:
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

Publié:
22 Jan 2010 à 11:00
par Michael DELIQUE

Publié:
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

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

Publié:
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

Publié:
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

Publié:
22 Jan 2010 à 13:57
par stloje
A bien y penser, tu as raison Michael. Une base peut être ouverte sans qu'on puisse y accéder à cause de la LCA

Publié:
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

Publié:
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

Publié:
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

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

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

Publié:
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.